2

I need to create a file /etc/init/start_swift.conf with following commands:

description "mount swift drives"
start on runlevel [234]
stop on runlevel [0156]
exec /opt/swift/bin/mount_devices

But the problem is that I even don't have the init directory. I have put start_swift.conf into /etc/init.d/ but it doesn't work. How to create this type of upstart files in CentOS7?

3

There are two answers for this question.

On CentOS 7 systemd is how you can run a service or script on start You put a .service file under /etc/systemd/system, which can look like this:

; /etc/systemd/system/swift.service
[Unit]
Description=Swift

[Service]
Type=notify
ExecStart=myscript

[Install]
; Runlevel here: 
WantedBy=multi-user.target

But actually systemd can be used for mounting devices directly, if this is the intention of your script.

For a (non-rpm-packaged) service you would put the a ".mount" file under /etc/systemd/system, e.g. /etc/systemd/system/var-lib-docker.mount. You might also want look into auto-mount options of systemd, see references.

In order to load the files, use systemd daemon-reload.

; /etc/systemd/system/var-lib-docker.mount
[Unit]
Description="Mount a volume"
Before=network.service

[Mount]
What=/dev/sdb1
Where=/var/lib/docker
;Options=

There is a lot you can tune, please refer to:

References - https://www.freedesktop.org/software/systemd/man/systemd.service.html - https://www.freedesktop.org/software/systemd/man/systemd.mount.html - https://www.freedesktop.org/software/systemd/man/systemd.automount.html

3

Centos uses systemd, not Upstart. Systemd is backward compatible with SysV init scripts. According to LSB 3.1, the init script must have informational Comment Conventions, defining when the script has to start/stop and what is required for the script to start/stop. I would recommend checking this guide and rewriting your upstart script to systemd unit.

  • Welcome to U&L, can you post revelent part of the link ? – Archemar May 16 '16 at 9:13
  • Relevant part? This is the official RedHat documentation on how to write systemd units. – Hristo Mohamed May 16 '16 at 9:50

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.