How to use Upstart scripts on CentOS7?

12,946

Solution 1

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

Solution 2

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.

Share:
12,946

Related videos on Youtube

Oleksandr
Author by

Oleksandr

Updated on September 18, 2022

Comments

  • Oleksandr
    Oleksandr almost 2 years

    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?

  • Арсений Черенков
    Арсений Черенков about 8 years
    Welcome to U&L, can you post revelent part of the link ?