[2024-feb-29] Sad news: Eric Layton aka Nocturnal Slacker aka vtel57 passed away on Feb 26th, shortly after hospitalization. He was one of our Wiki's most prominent admins. He will be missed.
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionLast revisionBoth sides next revision | ||
playground:runit [2018/12/19 20:08 (UTC)] – [7.3 Dependencies] chrisabela | playground:runit [2018/12/19 20:26 (UTC)] – [10. Migrating Services] chrisabela | ||
---|---|---|---|
Line 403: | Line 403: | ||
===== 8. Runlevels ===== | ===== 8. 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: | ||
+ | < | ||
runsvchdir single | runsvchdir single | ||
+ | </ | ||
- | You will see that / | + | You will see that '' |
- | and / | + | |
+ | < | ||
runsvchdir default >/ | runsvchdir default >/ | ||
+ | </ | ||
- | You can create any other runlevels | + | You can create any other runlevel |
+ | < | ||
cp -ar / | cp -ar / | ||
+ | </ | ||
- | Likewise, you edit the runsvdir line of / | + | You can edit the runsvdir line of '' |
===== 9. run scripts ===== | ===== 9. run scripts ===== | ||
- | Only one executable can be called for a service and the last line must be called by the exec command. There are some generic runit run scripts on the Internet, in other Linux distributions | + | Only one executable can be called for a service and the last line must be called by the '' |
- | In direct contrast to Slackware’s BSD style service scripts, runit run scripts must not must run in the foreground, otherwise runit would think that that have crashed and restart them. | + | In direct contrast to Slackware’s BSD style service scripts, runit run scripts must not must run in the foreground, otherwise runit would think that they have crashed and restart them. |
For some services, this may not be possible, but there are workarounds. You can forcefully terminate them by ending the run script like this: | For some services, this may not be possible, but there are workarounds. You can forcefully terminate them by ending the run script like this: | ||
+ | < | ||
sv d service_name | sv d service_name | ||
+ | </ | ||
- | Or you can use the pause command to keep the service alive. pause is a trivial command that will simply not exit, until it is killed (akin tail -f /dev/null). A slackbuild | + | Or you can use the '' |
+ | < | ||
exec chpst -b service_name pause | exec chpst -b service_name pause | ||
+ | </ | ||
===== 10. Migrating Services ===== | ===== 10. Migrating Services ===== | ||
- | It is suggested that services are migrated from stage 2 (which are still under the Slackware’s BSD init scheme) to stage 3 carefully. Start from the end of / | + | It is suggested that services are migrated from stage 2 (which are still under the Slackware’s BSD init scheme) to stage 3 carefully. Start from the bottom |
- | Then continue for / | + | Then continue for '' |
- | Proceed with other services to benefit’s from runit features. Note that for some services, such as atd and crond, you would need to edit / | + | Proceed with other services to benefit’s from runit features. Note that for some services, such as '' |
- | Let’s take the popular NetworkManager service as an example. According to the permission of / | + | Let’s take the popular |
Stop the service: | Stop the service: | ||
+ | < | ||
/ | / | ||
+ | </ | ||
Disable it: | Disable it: | ||
+ | < | ||
chmod -x / | chmod -x / | ||
+ | </ | ||
Create a suitable directory for runit | Create a suitable directory for runit | ||
+ | < | ||
mkdir / | mkdir / | ||
+ | </ | ||
- | Write a runit run script: / | + | Write a runit run script: |
+ | < | ||
#!/bin/sh | #!/bin/sh | ||
prefix=/usr | prefix=/usr | ||
Line 466: | Line 481: | ||
export XDG_CACHE_HOME=/ | export XDG_CACHE_HOME=/ | ||
exec $NETWORKMANAGER_BIN -n > /dev/null 2>&1 | exec $NETWORKMANAGER_BIN -n > /dev/null 2>&1 | ||
+ | </ | ||
- | Symlink | + | Symlink |
+ | < | ||
ln -s / | ln -s / | ||
+ | </ | ||
- | For udev, it is stuggested to let it under runit’s stage 2, but you can setup its monitoring for stage 3. | + | For '' |
+ | ===== 11 Sources ===== | ||
+ | |||
+ | (1) http:// | ||
- | Sources: | + | (2) https://slackbuilds.org |
- | http://smarden.org/runit/ | + | |
- | https://slackbuilds.org | + | (3) https://en.wikipedia.org/wiki/Init |
- | https://en.wikipedia.org/wiki/Init | + | (4) https://voidlinux.org/usage/runit/ |
- | https://voidlinux.org/ | + | (5) https://www.youtube.com/watch? |
- | https://www.youtube.com/watch? | + | (6) http://kchard.github.io/ |
- | http://kchard.github.io/runit-quickstart/ | + | (7) https://www.slackbook.org/beta/ |
- | https://www.slackbook.org/beta/ | + | (8) https://gitlab.com/chrisabela/runit_scripts_for_slackware |
- | https:// | + | * Written for Slackware 14.2 in December 2018 |
+ | * Originally written by [[wiki: | ||
+ | <!-- Please do not modify anything below, except adding new tags.--> | ||
+ | {{tag> | ||
- | Author: Chris Abela for Slackware 14.2 | ||
- | December 2018 |