Enjoy Slackware 15.0!
Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
howtos:slackware_admin:runit [2019/05/27 14:04 (UTC)] chrisabela |
howtos:slackware_admin:runit [2020/05/06 08:08 (UTC)] chrisabela [Startup and Shutdown] |
||
---|---|---|---|
Line 1: | Line 1: | ||
====== Runit ====== | ====== Runit ====== | ||
- | ===== 1. Introduction ===== | + | ===== Introduction ===== |
runit is a UNIX init scheme with service supervision. It is a cross-platform Unix init scheme with service supervision, | runit is a UNIX init scheme with service supervision. It is a cross-platform Unix init scheme with service supervision, | ||
Line 11: | Line 11: | ||
To read on the benefits of runit, see here: http:// | To read on the benefits of runit, see here: http:// | ||
- | ===== 2. Use runit with traditional init ===== | + | //* Unless otherwise stated, all commands in this article are to be run by root.// |
+ | |||
+ | ===== Use runit with traditional init (sysvinit) | ||
runit is not provided by Slackware, but a SlackBuild is maintained on https:// | runit is not provided by Slackware, but a SlackBuild is maintained on https:// | ||
Line 29: | Line 31: | ||
</ | </ | ||
- | For a typical Slackware-stlyle service, you can also edit ''/ | + | ==== Starting via rc.local ==== |
+ | |||
+ | For a typical Slackware-stlyle service, you can edit ''/ | ||
< | < | ||
Line 36: | Line 40: | ||
fi | fi | ||
</ | </ | ||
- | |||
- | if you require it. | ||
and then edit write ''/ | and then edit write ''/ | ||
Line 57: | Line 59: | ||
and reboot | and reboot | ||
- | ===== 3. Using runit with sysvinit and inittab | + | ==== Starting via inittab |
Remove the entries in ''/ | Remove the entries in ''/ | ||
Line 77: | Line 79: | ||
or reboot | or reboot | ||
- | ===== 4. How to replace init with runit ===== | + | ===== How to replace init with runit ===== |
+ | |||
+ | runit provides '' | ||
If you followed the previous chapter, then stop runsvdir and reverse all the changes that you made on your system. | If you followed the previous chapter, then stop runsvdir and reverse all the changes that you made on your system. | ||
- | Remove | + | So, remove |
< | < | ||
Line 87: | Line 91: | ||
</ | </ | ||
- | Reboot: | + | And reboot: |
< | < | ||
Line 184: | Line 188: | ||
However, with the last alternative, | However, with the last alternative, | ||
- | ===== 5. Startup and Shutdown | + | ==== Startup and Shutdown ==== |
- | The traditional | + | The BSD style init scripts provided by Slackware are used to bring up the system. |
+ | |||
+ | Initially | ||
The script ''/ | The script ''/ | ||
Line 215: | Line 221: | ||
However consider that shutdown would not work for the original init. | However consider that shutdown would not work for the original init. | ||
- | ===== 6. runsv ===== | + | ===== runsv ===== |
Although runit may replace init as the PID 1 daemon, there is not much benefit unless other services are migrated from Slackware' | Although runit may replace init as the PID 1 daemon, there is not much benefit unless other services are migrated from Slackware' | ||
Line 225: | Line 231: | ||
</ | </ | ||
- | In order to let the non-privileged | + | As a non-priviliged |
< | < | ||
- | chown chris.users | + | mkdir -p /home/bob/runit/logs |
</ | </ | ||
- | As a non-priviliged user, create some directories | + | Then edit a '' |
- | + | ||
- | < | + | |
- | mkdir -p /home/chris/runit/logs | + | |
- | </ | + | |
- | + | ||
- | Then edit a script that simulates a (finicky) service in a convenient directory; say | + | |
< | < | ||
Line 254: | Line 254: | ||
< | < | ||
- | chmod +x /home/chris/ | + | chmod +x /home/bob/ |
</ | </ | ||
Line 260: | Line 260: | ||
< | < | ||
- | /home/chris/ | + | /home/bob/ |
</ | </ | ||
- | Edit a file called ''/ | + | Log in back as root and edit a file called ''/ |
< | < | ||
#!/bin/sh -e | #!/bin/sh -e | ||
exec 2>&1 | exec 2>&1 | ||
- | exec chpst -u chris /home/chris/ | + | exec chpst -u bob /home/bob/ |
</ | </ | ||
Line 289: | Line 289: | ||
< | < | ||
#!/bin/sh | #!/bin/sh | ||
- | exec chpst -u chris svlogd -tt /home/chris/runit/logs | + | exec chpst -u bob svlogd -tt /home/bob/runit/logs |
</ | </ | ||
Line 298: | Line 298: | ||
</ | </ | ||
- | Run the sv service to ensure that it works: | + | Run the service to ensure that it works: |
< | < | ||
Line 311: | Line 311: | ||
Watch how your " | Watch how your " | ||
+ | |||
+ | As your non-privilged user: | ||
< | < | ||
- | tail -f /home/chris/ | + | tail -f /home/bob/runit/ |
</ | </ | ||
- | ===== 7. | + | Hit CTRL+C to exit. |
+ | |||
+ | Finally, login back as root and let bob take the ownership of the whole ''/ | ||
+ | |||
+ | < | ||
+ | chown -R bob.users / | ||
+ | </ | ||
+ | |||
+ | Now bob can manage this service with the '' | ||
+ | |||
+ | ===== Managing Services with sv ===== | ||
To see the status of a supervised service use '' | To see the status of a supervised service use '' | ||
Line 336: | Line 348: | ||
</ | </ | ||
- | ==== 7.1. Stop/ | + | ==== Stop/ |
Start a service | Start a service | ||
Line 361: | Line 373: | ||
< | < | ||
- | sv start sshd | + | sv start example |
- | sv stop sshd | + | sv stop example |
- | sv restart | + | sv restart |
</ | </ | ||
Each of these will also return the status of the service upon exit. | Each of these will also return the status of the service upon exit. | ||
- | ==== 7.2. Enabling a service ==== | + | ==== Enabling a service ==== |
Service directories are placed under ''/ | Service directories are placed under ''/ | ||
Line 380: | Line 392: | ||
Once a service is linked it will always start on boot and restart if it stops (unless this is disabled). | Once a service is linked it will always start on boot and restart if it stops (unless this is disabled). | ||
- | ==== 7.3. Disabling a service ==== | + | ==== Disabling a service ==== |
To disable a service in the current runlevel remove the symlink to its service directory from ''/ | To disable a service in the current runlevel remove the symlink to its service directory from ''/ | ||
Line 402: | Line 414: | ||
</ | </ | ||
- | ==== 7.4. Dependencies ==== | + | ==== Dependencies ==== |
Dependencies of service are supported by starting the dependent run script as follows: | Dependencies of service are supported by starting the dependent run script as follows: | ||
Line 414: | Line 426: | ||
</ | </ | ||
- | ===== 8. Runlevels | + | ==== Runlevels ==== |
- | If you installed the slackbuild configuration files, you have two runlevels: default and single. The current runlevel is default. You can verify by looking under ''/ | + | If you installed the slackbuild configuration files, you have two runlevels: default and single. The current runlevel is default. You can verify by looking under ''/ |
Change runlevel to another runlevel; single: | Change runlevel to another runlevel; single: | ||
Line 424: | Line 436: | ||
</ | </ | ||
- | You will see that ''/ | + | You will see that ''/ |
< | < | ||
Line 430: | Line 442: | ||
</ | </ | ||
- | You can create any other runlevel and name them as you like. To start you can copy an existing runlevel directory and modify as you wish. | + | You can create any other runlevel and name them as you like. To start, you can copy an existing runlevel directory and modify as you wish. |
< | < | ||
Line 438: | Line 450: | ||
You can edit the runsvdir line of ''/ | You can edit the runsvdir line of ''/ | ||
- | ===== 9. run scripts ===== | + | ===== Run scripts ===== |
- | Only one executable can be called for a service | + | Only one executable can be called for a service |
+ | |||
+ | Another set of installable run scripts are available at [[https:// | ||
In direct contrast to Slackware' | In direct contrast to Slackware' | ||
Line 450: | Line 464: | ||
</ | </ | ||
- | Or you can use the '' | + | Or you can use the '' |
< | < | ||
Line 456: | Line 470: | ||
</ | </ | ||
- | ===== 10. Migrating Services ===== | + | ===== Migrating Services ===== |
It is suggested that services are migrated from stage 2 (which are still under the Slackware' | It is suggested that services are migrated from stage 2 (which are still under the Slackware' | ||
Line 507: | Line 521: | ||
It is stuggested to let '' | It is stuggested to let '' | ||
- | ===== 11. Sources | + | ===== Using runit-init with other init scripts |
- | + | ||
- | (1) http:// | + | |
- | (2) https:// | + | ==== OpenRC ==== |
- | (3) https://en.wikipedia.org/ | + | Here '' |
- | (4) https://voidlinux.org/usage/runit/ | + | It requires a working OpenRC system. Check the [[howtos:general_admin: |
+ | The level 1 runit service uses the OpenRC '' | ||
- | (5) https://www.youtube.com/watch? | + | The [[https://wiki.gentoo.org/ |
- | (6) http:// | + | ==== void-runit ==== |
- | (7) https://www.slackbook.org/beta/ | + | Here the scripts provided by the [[https://github.com/void-linux/void-runit|void-runit]] project are used to mount the filesystem, load modules, etc. |
- | (8) https:// | + | Currently this is the most independent way to setup runit. |
+ | |||
+ | ===== Sources ===== | ||
+ | |||
+ | - http:// | ||
+ | - https:// | ||
+ | - https:// | ||
+ | - https:// | ||
+ | - http:// | ||
+ | - https:// | ||
+ | - https:// | ||
+ | - https:// | ||
+ | - https:// | ||
+ | - https:// | ||
+ | |||
+ | ---- | ||
* Written for Slackware 14.2 in December 2018 | * Written for Slackware 14.2 in December 2018 | ||
Line 529: | Line 557: | ||
<!-- Please do not modify anything below, except adding new tags.--> | <!-- Please do not modify anything below, except adding new tags.--> | ||
{{tag> | {{tag> | ||
- | |||
- | |||