7 Commits

Author SHA1 Message Date
65e0733db7 README 2018-01-12 17:23:51 +07:00
d9721360b1 clean up /tmp 2018-01-11 18:10:16 +07:00
Daniel Néri
a3bcf72edb core-services/01-static-devnodes.sh: Honour modprobe blacklists 2018-01-11 12:18:02 +07:00
f3b0b94b3b Add opentmpfiles 2018-01-11 12:11:00 +07:00
Faule Socke
d100216548 Fixed sysctl-file processing order
To avoid local administrator settings getting overwritten by vendor
settings.

Since Artix doesn't have the same issue as Void, this patch can be
applied with no problem.
2018-01-11 11:41:20 +07:00
953c999ccf Various Runit changes (#5)
* Move runit binaries to a dedicated directory

* Adjust options for cp command during install (#71)

* Add opensysusers initscript compatiblity
2018-01-07 12:23:25 -03:00
253e6b1c5e Add an option on whether to use OpenRC or runit as its service manager (#4)
* Add an option on whether to use OpenRC or runit as its service manager

* Move runlevels boot and default to stage2
2018-01-07 12:22:17 -03:00
10 changed files with 55 additions and 31 deletions

17
1
View File

@@ -5,20 +5,15 @@ PATH=/usr/bin:/usr/sbin
. /etc/runit/functions . /etc/runit/functions
if [ -x /usr/bin/openrc ]; then [ -r /etc/runit/rc.conf ] && . /etc/runit/rc.conf
msg "Welcome to Artix Linux!"
msg "Welcome to Artix Linux!"
if [ -x /usr/bin/openrc ] && [ "$SVMANAGER" = "openrc" ]; then
# Start core services: we'll use OpenRC for this. # Start core services: we'll use OpenRC for this.
msg "Initializing services with OpenRC..." msg "Initializing runlevel sysinit with OpenRC..."
openrc sysinit || msg_error "Failed to start sysinit runlevel"
for runlevel in sysinit boot default; do
openrc $runlevel || msg_error "Failed to start $runlevel runlevel"
done
else else
msg "Welcome to Artix Linux!"
[ -r /etc/runit/rc.conf ] && . /etc/runit/rc.conf
# Start core services: one-time system tasks. # Start core services: one-time system tasks.
detect_virt detect_virt
for f in /etc/runit/core-services/*.sh; do for f in /etc/runit/core-services/*.sh; do

7
2
View File

@@ -13,6 +13,13 @@ done
[ -x /etc/runit/rc.local ] && /etc/runit/rc.local [ -x /etc/runit/rc.local ] && /etc/runit/rc.local
# The reason that boot is not in stage 1 is because if something hangs
# we can still listen for signals, however stage 1 does NOT accept signals
if [ -x /usr/bin/openrc ] && [ "$SVMANAGER" = "openrc" ]; then
openrc boot
openrc default
fi
runsvchdir "${runlevel}" runsvchdir "${runlevel}"
mkdir -p /run/runit/runsvdir mkdir -p /run/runit/runsvdir
ln -s /etc/runit/runsvdir/current /run/runit/service ln -s /etc/runit/runsvdir/current /run/runit/service

View File

@@ -6,14 +6,14 @@ all:
$(CC) $(CFLAGS) pause.c -o pause $(LDFLAGS) $(CC) $(CFLAGS) pause.c -o pause $(LDFLAGS)
install: install:
install -d ${DESTDIR}${PREFIX}/bin install -d ${DESTDIR}${PREFIX}/lib/runit-artix/bin
install -m755 halt ${DESTDIR}${PREFIX}/bin/halt-runit install -m755 halt ${DESTDIR}${PREFIX}/lib/runit-artix/bin/halt
install -m755 pause ${DESTDIR}${PREFIX}/bin/pause-runit install -m755 pause ${DESTDIR}${PREFIX}/lib/runit-artix/bin/pause
install -m755 shutdown ${DESTDIR}${PREFIX}/bin/shutdown-runit install -m755 shutdown ${DESTDIR}${PREFIX}/lib/runit-artix/bin/shutdown
install -m755 modules-load ${DESTDIR}${PREFIX}/bin/modules-load install -m755 modules-load ${DESTDIR}${PREFIX}/lib/runit-artix/bin/modules-load
install -m755 zzz ${DESTDIR}${PREFIX}/bin/zzz-runit install -m755 zzz ${DESTDIR}${PREFIX}/lib/runit-artix/bin/zzz
ln -sf halt-runit ${DESTDIR}${PREFIX}/bin/poweroff-runit ln -sf halt ${DESTDIR}${PREFIX}/lib/runit-artix/bin/poweroff
ln -sf halt-runit ${DESTDIR}${PREFIX}/bin/reboot-runit ln -sf halt ${DESTDIR}${PREFIX}/lib/runit-artix/bin/reboot
install -d ${DESTDIR}${PREFIX}/share/man/man1 install -d ${DESTDIR}${PREFIX}/share/man/man1
install -m644 pause.1 ${DESTDIR}${PREFIX}/share/man/man1 install -m644 pause.1 ${DESTDIR}${PREFIX}/share/man/man1
install -d ${DESTDIR}${PREFIX}/share/man/man8 install -d ${DESTDIR}${PREFIX}/share/man/man8
@@ -35,8 +35,8 @@ install:
install -m755 rc.shutdown ${DESTDIR}/etc/runit install -m755 rc.shutdown ${DESTDIR}/etc/runit
ln -sf /run/runit/reboot ${DESTDIR}/etc/runit/ ln -sf /run/runit/reboot ${DESTDIR}/etc/runit/
ln -sf /run/runit/stopit ${DESTDIR}/etc/runit/ ln -sf /run/runit/stopit ${DESTDIR}/etc/runit/
cp -aP runsvdir/* ${DESTDIR}/etc/runit/runsvdir/ cp -R --no-dereference --preserve=mode,links -v runsvdir/* ${DESTDIR}/etc/runit/runsvdir/
cp -aP services/* ${DESTDIR}/etc/runit/sv/ cp -R --no-dereference --preserve=mode,links -v services/* ${DESTDIR}/etc/runit/sv/
clean: clean:
-rm -f halt pause -rm -f halt pause

View File

@@ -4,21 +4,24 @@ This repository contains the runit init scripts for the Artix Linux
distribution. distribution.
This work is based on Void Linux's This work is based on Void Linux's
[runit-void](https://github.com/voidlinux/void-runit). Patches to Void [void-runit](https://github.com/voidlinux/void-runit). Patches to Void
Linux's repo will also be applied here. Linux's repo will also be applied here.
## Dependencies ## Dependencies
- GNU coreutils
- A POSIX shell - A POSIX shell
- A POSIX awk - A POSIX awk
- procps-ng (needs pkill -s0,1) - procps-ng (needs pkill -s0,1)
- runit - runit
- opentmpfiles
- opensysusers
### How to use it ### How to use it
To see enabled services for "current" runlevel: To see enabled services for "current" runlevel:
$ ls -l /var/service $ ls -l /run/runit/service
To see available runlevels (default and single, which just runs sulogin): To see available runlevels (default and single, which just runs sulogin):
@@ -26,21 +29,21 @@ To see available runlevels (default and single, which just runs sulogin):
To enable and start a service into the "current" runlevel: To enable and start a service into the "current" runlevel:
# ln -s /etc/runit/sv/<service> /var/service # ln -s /etc/runit/sv/<service> /run/runit/service
To disable and remove a service: To disable and remove a service:
# rm -f /var/service/<service> # rm -f /run/runit/service/<service>
To view status of all services for "current" runlevel: To view status of all services for "current" runlevel:
# sv status /var/service/* # sv status /run/runit/service/*
Feel free to send patches and contribute with improvements! Feel free to send patches and contribute with improvements!
## Copyright ## Copyright
runit-cromnix is in the public domain. runit-artix is in the public domain.
To the extent possible under law, the creator of this work has waived To the extent possible under law, the creator of this work has waived
all copyright and related or neighboring rights to this work. all copyright and related or neighboring rights to this work.

View File

@@ -2,5 +2,5 @@
# Load them by looking at the output of `kmod static-nodes`. # Load them by looking at the output of `kmod static-nodes`.
for f in $(kmod static-nodes 2>/dev/null|awk '/Module/ {print $2}'); do for f in $(kmod static-nodes 2>/dev/null|awk '/Module/ {print $2}'); do
modprobe -q $f 2>/dev/null modprobe -bq $f 2>/dev/null
done done

View File

@@ -10,6 +10,11 @@ else
msg_warn "cannot find udevd!" msg_warn "cannot find udevd!"
fi fi
if [ -x /usr/bin/tmpfiles ]; then
msg "Setting up tmpfiles.d entries for /dev..."
tmpfiles --prefix=/dev --create --boot
fi
if [ -n "${_udevd}" ]; then if [ -n "${_udevd}" ]; then
msg "Starting udev and waiting for devices to settle..." msg "Starting udev and waiting for devices to settle..."
${_udevd} --daemon ${_udevd} --daemon

View File

@@ -19,3 +19,13 @@ if [ -n "$TIMEZONE" ]; then
msg "Setting up timezone to '${TIMEZONE}'..." msg "Setting up timezone to '${TIMEZONE}'..."
ln -sf "/usr/share/zoneinfo/$TIMEZONE" /etc/localtime ln -sf "/usr/share/zoneinfo/$TIMEZONE" /etc/localtime
fi fi
msg "Setting up sysusers.d entries..."
if [ -x /usr/bin/sysusers ]; then
sysusers
fi
msg "Setting up tmpfiles.d entries..."
if [ -x /usr/bin/tmpfiles ]; then
tmpfiles --exclude-prefix=/dev --create --remove --boot
fi

View File

@@ -3,10 +3,10 @@
if [ -x /sbin/sysctl -o -x /bin/sysctl ]; then if [ -x /sbin/sysctl -o -x /bin/sysctl ]; then
msg "Loading sysctl(8) settings..." msg "Loading sysctl(8) settings..."
for i in /run/sysctl.d/*.conf \ for i in /run/sysctl.d/*.conf \
/etc/sysctl.d/*.conf \
/usr/local/lib/sysctl.d/*.conf \ /usr/local/lib/sysctl.d/*.conf \
/usr/lib/sysctl.d/*.conf \ /usr/lib/sysctl.d/*.conf \
/etc/sysctl.conf; do /etc/sysctl.conf \
/etc/sysctl.d/*.conf; do
if [ -e "$i" ]; then if [ -e "$i" ]; then
printf '* Applying %s ...\n' "$i" printf '* Applying %s ...\n' "$i"

View File

@@ -7,5 +7,6 @@ fi
if [ ! -e /var/log/btmp ]; then if [ ! -e /var/log/btmp ]; then
install -m0600 -o root -g utmp /dev/null /var/log/btmp install -m0600 -o root -g utmp /dev/null /var/log/btmp
fi fi
install -dm1777 /tmp/.X11-unix /tmp/.ICE-unix rm -rf /tmp
install -dm1777 /tmp /tmp/.X11-unix /tmp/.ICE-unix
rm -f /etc/nologin /forcefsck /forcequotacheck /fastboot rm -f /etc/nologin /forcefsck /forcequotacheck /fastboot

View File

@@ -1,5 +1,8 @@
# /etc/runit/rc.conf - system configuration # /etc/runit/rc.conf - system configuration
# Set the service manager (available options: "runit" or "openrc")
#SVMANAGER="runit"
# Set the host name. # Set the host name.
# #
# NOTE: it's preferred to declare the hostname in /etc/hostname instead: # NOTE: it's preferred to declare the hostname in /etc/hostname instead: