23 Commits

Author SHA1 Message Date
nikolar
e0c4e306e4 Add binfmt.d from artix-cgroups 2024-04-30 16:33:05 +02:00
nikolar
69fa6e4394 Migrate to artix-cgroups 2024-04-30 16:32:55 +02:00
Nikola
2530c4aadd Change default for cgroups to unified (cgroups2). 2024-04-15 11:46:36 +02:00
Qontinuum
5d00408a16 Edit procfs.in
Make procfs respect options in fstab
Remove nosuid,noexec,nodev mount options since they are not support by
procfs anyway
2023-11-01 14:08:58 +01:00
Qontinuum
26fa40633d Move to new Artix sysusers/tmpfiles binary names 2023-08-18 18:51:47 +02:00
fab1c43983 add /tmp cleanup 2021-05-14 11:48:42 +07:00
9f6718f5de hwclock: read from rc.conf 2021-01-22 08:46:50 +07:00
c0c2ab41a8 devfs: add symlinks and needed files if not exist yet 2020-09-15 11:01:24 +07:00
4be15079e2 binfmt: add an option to run it once without adding it to running daemons 2020-08-25 07:55:32 +07:00
Martin Castillo
2314c2630f udev.in: stop: only try to stop udevd when it's running
Since udevd is now started again in stage 2 and stopped by
runsvdir on shutdown, we only try to stop it with udevadm,
if there is an instance running.  This might be the case if
something went wrong and stage 2 couldn't start udevd for some
reason, so the instance from stage 1 wasn't terminated.

When starting udevd in stage 1, runsvdir isn't running yet, so
there is no need to check for already running instances.
2020-04-04 14:50:39 +07:00
Martin Castillo
38c52b18dc binfmt.in: fix grep invocation
If any directory has more than one file, grep prefixes matching lines with
the filenames. -h suppresses that.
2020-03-09 07:56:55 +07:00
cbbed45ce3 fix hwclock command 2019-11-06 19:46:41 +07:00
667dee6b9c fix hwclock 2019-11-06 09:18:56 +07:00
dudemanguy
451fe75e69 use "-T linux" if $TERM is dumb or empty 2019-09-13 11:50:13 +07:00
a6df81b8fb Remove rc script for netfs
Since network services are started on stage 2, I'm going to delete this.
A replacement runit service will be added in the future.
2019-02-12 21:20:53 +07:00
1df9ca6564 Do not check for mounted fs 2019-02-12 21:19:44 +07:00
6cc8c4288f Check if udev is already run in stage2 by runit 2018-12-27 20:48:25 +07:00
0106628f96 Switch to /usr/lib/os-release instead of /etc/os-release 2018-08-30 20:36:05 +07:00
51c6d97f1d console-setup: use the loop instead of writing it to /dev/tty 2018-07-08 12:38:23 +07:00
6c85a704ea console-setup: set terminal encoding to UTF-8 2018-07-08 12:08:07 +07:00
udeved
737c34fd1a sv.d: fix typo in root 2018-05-24 14:25:42 +02:00
6ef8becf0f Add hwclock stat_busy message 2018-05-24 19:24:05 +07:00
19f79292db Merge pull request #1 from artix-linux/svfail
Svfail
2018-05-17 00:18:56 +07:00
19 changed files with 116 additions and 180 deletions

View File

@@ -18,6 +18,7 @@ RCBIN = \
RCSVD = \ RCSVD = \
sv.d/root \ sv.d/root \
sv.d/binfmt \ sv.d/binfmt \
sv.d/binfmt.d \
sv.d/bootlogd \ sv.d/bootlogd \
sv.d/cleanup \ sv.d/cleanup \
sv.d/console-setup \ sv.d/console-setup \
@@ -28,7 +29,6 @@ RCSVD = \
sv.d/misc \ sv.d/misc \
sv.d/mount-all \ sv.d/mount-all \
sv.d/net-lo \ sv.d/net-lo \
sv.d/netfs \
sv.d/random-seed \ sv.d/random-seed \
sv.d/remount-root \ sv.d/remount-root \
sv.d/swap \ sv.d/swap \
@@ -156,6 +156,7 @@ install-rc:
$(LN) $(RCSVDIR)/dmesg $(DESTDIR)$(RCDIR)/sysinit/85-dmesg $(LN) $(RCSVDIR)/dmesg $(DESTDIR)$(RCDIR)/sysinit/85-dmesg
$(LN) $(RCSVDIR)/sysctl $(DESTDIR)$(RCDIR)/sysinit/90-sysctl $(LN) $(RCSVDIR)/sysctl $(DESTDIR)$(RCDIR)/sysinit/90-sysctl
$(LN) $(RCSVDIR)/binfmt $(DESTDIR)$(RCDIR)/sysinit/95-binfmt $(LN) $(RCSVDIR)/binfmt $(DESTDIR)$(RCDIR)/sysinit/95-binfmt
$(LN) $(RCSVDIR)/binfmt.d $(DESTDIR)$(RCDIR)/sysinit/97-binfmt.d
$(LN) $(RCSVDIR)/cleanup $(DESTDIR)$(RCDIR)/sysinit/99-cleanup $(LN) $(RCSVDIR)/cleanup $(DESTDIR)$(RCDIR)/sysinit/99-cleanup
install -d $(DESTDIR)$(RCDIR)/shutdown install -d $(DESTDIR)$(RCDIR)/shutdown
@@ -163,6 +164,7 @@ install-rc:
$(LN) $(RCSVDIR)/random-seed $(DESTDIR)$(RCDIR)/shutdown/10-random-seed $(LN) $(RCSVDIR)/random-seed $(DESTDIR)$(RCDIR)/shutdown/10-random-seed
$(LN) $(RCSVDIR)/cleanup $(DESTDIR)$(RCDIR)/shutdown/20-cleanup $(LN) $(RCSVDIR)/cleanup $(DESTDIR)$(RCDIR)/shutdown/20-cleanup
$(LN) $(RCSVDIR)/udev $(DESTDIR)$(RCDIR)/shutdown/30-udev $(LN) $(RCSVDIR)/udev $(DESTDIR)$(RCDIR)/shutdown/30-udev
$(LN) $(RCSVDIR)/hwclock $(DESTDIR)$(RCDIR)/shutdown/35-hwclock
$(LN) $(RCSVDIR)/misc $(DESTDIR)$(RCDIR)/shutdown/40-misc $(LN) $(RCSVDIR)/misc $(DESTDIR)$(RCDIR)/shutdown/40-misc
$(LN) $(RCSVDIR)/swap $(DESTDIR)$(RCDIR)/shutdown/50-swap $(LN) $(RCSVDIR)/swap $(DESTDIR)$(RCDIR)/shutdown/50-swap
$(LN) $(RCSVDIR)/root $(DESTDIR)$(RCDIR)/shutdown/60-root $(LN) $(RCSVDIR)/root $(DESTDIR)$(RCDIR)/shutdown/60-root

View File

@@ -1,18 +1,18 @@
#!/bin/bash #!/bin/bash
# This is run by the kernel after the last task is removed from a # This is run by the kernel after the last task is removed from a
# control group in the openrc hierarchy. # control group in the artix hierarchy.
# Copyright (c) 2007-2015 The OpenRC Authors. # Copyright (c) 2007-2015 The OpenRC Authors.
# See the Authors file at the top-level directory of this distribution and # See the Authors file at the top-level directory of this distribution and
# https://github.com/OpenRC/openrc/blob/master/AUTHORS # https://github.com/OpenRC/artix/blob/master/AUTHORS
# #
# This file is part of OpenRC. It is subject to the license terms in # This file is part of OpenRC. It is subject to the license terms in
# the LICENSE file found in the top-level directory of this # the LICENSE file found in the top-level directory of this
# distribution and at https://github.com/OpenRC/openrc/blob/master/LICENSE # distribution and at https://github.com/OpenRC/artix/blob/master/LICENSE
# This file may not be copied, modified, propagated, or distributed # This file may not be copied, modified, propagated, or distributed
# except according to the terms contained in the LICENSE file. # except according to the terms contained in the LICENSE file.
cgroup=/sys/fs/cgroup/openrc cgroup=/sys/fs/cgroup/artix
PATH=/bin:/usr/bin:/sbin:/usr/sbin PATH=/bin:/usr/bin:/sbin:/usr/sbin
if [ -d ${cgroup}/"$1" ]; then if [ -d ${cgroup}/"$1" ]; then
rmdir ${cgroup}/"$1" rmdir ${cgroup}/"$1"

View File

@@ -156,7 +156,7 @@ in_array() {
print_welcome() { print_welcome() {
# see os-release(5) # see os-release(5)
. /etc/os-release . /usr/lib/os-release
echo " " echo " "
printhl "${PRETTY_NAME}\n" printhl "${PRETTY_NAME}\n"
@@ -201,7 +201,11 @@ run_shutdown(){
calc_columns calc_columns
# disable colors on broken terminals # disable colors on broken terminals
TERM_COLORS=$(tput colors 2>/dev/null) if [[ -z "$TERM" || "$TERM" = "dumb" ]]; then
TERM_COLORS=$(tput colors -T linux 2>/dev/null)
else
TERM_COLORS=$(tput colors 2>/dev/null)
fi
if (( $? != 3 )); then if (( $? != 3 )); then
case $TERM_COLORS in case $TERM_COLORS in
*[!0-9]*) USECOLOR="";; *[!0-9]*) USECOLOR="";;

View File

@@ -13,7 +13,7 @@
# "hybrid" mounts cgroups version 2 on /sys/fs/cgroup/unified and # "hybrid" mounts cgroups version 2 on /sys/fs/cgroup/unified and
# cgroups version 1 on /sys/fs/cgroup # cgroups version 1 on /sys/fs/cgroup
# CGROUP_MODE="hybrid" # CGROUP_MODE="unified"
# This is a list of controllers which should be enabled for cgroups version 2. # This is a list of controllers which should be enabled for cgroups version 2.
# If hybrid mode is being used, controllers listed here will not be # If hybrid mode is being used, controllers listed here will not be
@@ -26,3 +26,9 @@
# /sys/fs/cgroup in hybrid or legacy mode # /sys/fs/cgroup in hybrid or legacy mode
# HAVE_CONTROLLER1_GROUPS="true" # HAVE_CONTROLLER1_GROUPS="true"
# This switch controls whether or not /tmp will be cleaned.
# /tmp will only be cleaned if it is set to "y". Generally it is recommended to
# mount /tmp as tmpfs.
# CLEANTMP="n"

17
sv.d/binfmt.d.in Normal file
View File

@@ -0,0 +1,17 @@
#!/bin/bash
# sourcing our current rc.conf requires this to be a bash script
. @RCLIBDIR@/functions
case "$1" in
start)
stat_busy "Running binfmt.d"
/usr/lib/artix/binfmt.sh || stat_die binfmt.d
add_daemon binfmt.d
stat_done binfmt.d
;;
*)
echo "usage: $0 {start|once}"
exit 1
;;
esac

View File

@@ -7,10 +7,16 @@ mount_binfmt(){
mountpoint -q /proc/sys/fs/binfmt_misc || \ mountpoint -q /proc/sys/fs/binfmt_misc || \
mount -t binfmt_misc binfmt /proc/sys/fs/binfmt_misc || return 1 mount -t binfmt_misc binfmt /proc/sys/fs/binfmt_misc || return 1
for files in /proc/sys/fs/binfmt_misc/*; do
[ "$files" = /proc/sys/fs/binfmt_misc/register ] && continue
[ "$files" = /proc/sys/fs/binfmt_misc/status ] && continue
echo -1 > "$files"
done
for path in /usr/lib/binfmt.d /etc/binfmt.d /run/binfmt.d; do for path in /usr/lib/binfmt.d /etc/binfmt.d /run/binfmt.d; do
[[ ! -d $path ]] && continue [[ ! -d $path ]] && continue
[[ -z "$(ls $path)" ]] && continue [[ -z "$(ls $path)" ]] && continue
grep "^:" $path/* | \ grep -h "^:" $path/* | \
while read -r line; do while read -r line; do
printf "%s" "$line" > /proc/sys/fs/binfmt_misc/register || return 1 printf "%s" "$line" > /proc/sys/fs/binfmt_misc/register || return 1
done done
@@ -27,8 +33,13 @@ case "$1" in
add_daemon binfmt add_daemon binfmt
stat_done binfmt stat_done binfmt
;; ;;
once)
stat_busy "Running binfmt"
mount_binfmt || stat_die binfmt
stat_done
;;
*) *)
echo "usage: $0 {start}" echo "usage: $0 {start|once}"
exit 1 exit 1
;; ;;
esac esac

View File

@@ -2,125 +2,11 @@
# sourcing our current rc.conf requires this to be a bash script # sourcing our current rc.conf requires this to be a bash script
. @RCLIBDIR@/functions . @RCLIBDIR@/functions
. @RCDIR@/rc.conf
CGROUP_OPTS=nodev,noexec,nosuid
HAVE_CONTROLLER1_GROUPS=${HAVE_CONTROLLER1_GROUPS:-true}
CGROUP_MODE=${CGROUP_MODE:-hybrid}
CGROUP_CONTROLLERS=""
cgroup2_find_path(){
if grep -qw cgroup2 /proc/filesystems; then
case "${CGROUP_MODE}" in
hybrid) printf "/sys/fs/cgroup/unified" ;;
unified) printf "/sys/fs/cgroup" ;;
esac
fi
return 0
}
cgroup1_base(){
grep -qw cgroup /proc/filesystems || return 0
if ! mountpoint -q /sys/fs/cgroup; then
local opts="${CGROUP_OPTS},mode=755,size=${rc_cgroupsize:-10m}"
mount -n -t tmpfs -o "${opts}" cgroup_root /sys/fs/cgroup
fi
if ! mountpoint -q /sys/fs/cgroup/openrc; then
local agent="@RCLIBDIR@/cgroup-release-agent"
mkdir /sys/fs/cgroup/openrc
mount -n -t cgroup -o none,${CGROUP_OPTS},name=openrc,release_agent="$agent" openrc /sys/fs/cgroup/openrc
printf 1 > /sys/fs/cgroup/openrc/notify_on_release
fi
return 0
}
cgroup1_controllers(){
${HAVE_CONTROLLER1_GROUPS} && [ -e /proc/cgroups ] && grep -qw cgroup /proc/filesystems || return 0
while read -r name _ _ enabled _; do
case "${enabled}" in
1) if mountpoint -q "/sys/fs/cgroup/${name}";then continue;fi
local x
for x in $CGROUP_CONTROLLERS; do
[ "${name}" = "blkio" ] && [ "${x}" = "io" ] &&
continue 2
[ "${name}" = "${x}" ] &&
continue 2
done
mkdir "/sys/fs/cgroup/${name}"
mount -n -t cgroup -o "${CGROUP_OPTS},${name}" "${name}" "/sys/fs/cgroup/${name}"
;;
esac
done < /proc/cgroups
return 0
}
cgroup2_base(){
grep -qw cgroup2 /proc/filesystems || return 0
local base
base="$(cgroup2_find_path)"
mkdir -p "${base}"
mount -t cgroup2 none -o "${CGROUP_OPTS},nsdelegate" "${base}" 2> /dev/null ||
mount -t cgroup2 none -o "${CGROUP_OPTS}" "${base}"
return 0
}
cgroup2_controllers(){
grep -qw cgroup2 /proc/filesystems || return 0
local active cgroup_path x y
cgroup_path="$(cgroup2_find_path)"
[ -z "${cgroup_path}" ] && return 0
[ -e "${cgroup_path}/cgroup.controllers" ] && read -r active < "${cgroup_path}/cgroup.controllers"
for x in ${CGROUP_CONTROLLERS}; do
for y in ${active}; do
[ "$x" = "$y" ] && [ -e "${cgroup_path}/cgroup.subtree_control" ] &&
echo "+${x}" > "${cgroup_path}/cgroup.subtree_control"
done
done
return 0
}
cgroups_hybrid(){
cgroup1_base
cgroup2_base
cgroup2_controllers
cgroup1_controllers
return 0
}
cgroups_legacy(){
cgroup1_base
cgroup1_controllers
return 0
}
cgroups_unified(){
cgroup2_base
cgroup2_controllers
return 0
}
mount_cgroups(){
case "${CGROUP_MODE}" in
hybrid) cgroups_hybrid ;;
legacy) cgroups_legacy ;;
unified) cgroups_unified ;;
esac
return 0
}
mount_cgs(){
if [ -d /sys/fs/cgroup ];then
mount_cgroups
return 0
fi
return 1
}
case "$1" in case "$1" in
start) start)
stat_busy "Mounting cgroups filesystem" stat_busy "Mounting cgroups filesystem"
mount_cgs || stat_die cgroups /usr/lib/artix/mount-cgroups.sh|| stat_die cgroups
add_daemon cgroups add_daemon cgroups
stat_done cgroups stat_done cgroups
;; ;;

View File

@@ -2,6 +2,7 @@
# sourcing our current rc.conf requires this to be a bash script # sourcing our current rc.conf requires this to be a bash script
. @RCLIBDIR@/functions . @RCLIBDIR@/functions
. @RCDIR@/rc.conf
cleaning(){ cleaning(){
install -m0664 -o root -g utmp /dev/null /run/utmp install -m0664 -o root -g utmp /dev/null /run/utmp
@@ -13,6 +14,8 @@ cleaning(){
fi fi
rm -f /etc/nologin /forcefsck /forcequotacheck /fastboot rm -f /etc/nologin /forcefsck /forcequotacheck /fastboot
[ "$CLEANTMP" = y ] && rm -rf /tmp/*
} }
case "$1" in case "$1" in

View File

@@ -6,14 +6,15 @@
config(){ config(){
[ -r /etc/vconsole.conf ] && . /etc/vconsole.conf [ -r /etc/vconsole.conf ] && . /etc/vconsole.conf
TTYS=${TTYS:-6} TTYS=${TTYS:-6}
if [ -n "$FONT" ]; then
_index=0 _index=0
while [ ${_index} -le $TTYS ]; do while [ ${_index} -le $TTYS ]; do
if [ -n "$FONT" ]; then
setfont ${FONT_MAP:+-m $FONT_MAP} ${FONT_UNIMAP:+-u $FONT_UNIMAP} \ setfont ${FONT_MAP:+-m $FONT_MAP} ${FONT_UNIMAP:+-u $FONT_UNIMAP} \
$FONT -C "/dev/tty${_index}" $FONT -C "/dev/tty${_index}"
fi
printf "\033%s" "%G" >/dev/tty${_index}
_index=$((_index + 1)) _index=$((_index + 1))
done done
fi
if [ -n "$KEYMAP" ]; then if [ -n "$KEYMAP" ]; then
loadkeys -q -u ${KEYMAP} loadkeys -q -u ${KEYMAP}
fi fi

View File

@@ -5,7 +5,31 @@
mount_devfs(){ mount_devfs(){
mountpoint -q /dev || mount -t devtmpfs dev /dev -o mode=0755,nosuid mountpoint -q /dev || mount -t devtmpfs dev /dev -o mode=0755,nosuid
mkdir -p /dev/{pts,shm}
# seed /dev with some things that might be needed (for example,
# xudev doesn't do this compared to eudev), code from OpenRC
# creating /dev/console, /dev/tty and /dev/tty1 to be able to write
# to $CONSOLE with/without bootsplash before udevd creates it
[ -c /dev/console ] || mknod -m 600 /dev/console c 5 1
[ -c /dev/tty1 ] || mknod -m 620 /dev/tty1 c 4 1
[ -c /dev/tty ] || mknod -m 666 /dev/tty c 5 0
# udevd will dup its stdin/stdout/stderr to /dev/null
# and we do not want a file which gets buffered in ram
[ -c /dev/null ] || mknod -m 666 /dev/null c 1 3
# so udev can add its start-message to dmesg
[ -c /dev/kmsg ] || mknod -m 660 /dev/kmsg c 1 11
# extra symbolic links not provided by default
[ -e /dev/fd ] || ln -snf /proc/self/fd /dev/fd
[ -e /dev/stdin ] || ln -snf /proc/self/fd/0 /dev/stdin
[ -e /dev/stdout ] || ln -snf /proc/self/fd/1 /dev/stdout
[ -e /dev/stderr ] || ln -snf /proc/self/fd/2 /dev/stderr
[ -e /proc/kcore ] && ln -snf /proc/kcore /dev/core
mkdir -p /dev/pts /dev/shm
mountpoint -q /dev/pts || mount -t devpts devpts /dev/pts -o mode=0620,gid=5,nosuid,noexec mountpoint -q /dev/pts || mount -t devpts devpts /dev/pts -o mode=0620,gid=5,nosuid,noexec
mountpoint -q /dev/shm || mount -t tmpfs shm /dev/shm -o mode=1777,nosuid,nodev mountpoint -q /dev/shm || mount -t tmpfs shm /dev/shm -o mode=1777,nosuid,nodev
mountpoint -q /run || mount -t tmpfs run /run -o mode=0755,nosuid,nodev mountpoint -q /run || mount -t tmpfs run /run -o mode=0755,nosuid,nodev

View File

@@ -1,24 +1,26 @@
#!/bin/bash #!/bin/bash
. @RCLIBDIR@/functions . @RCLIBDIR@/functions
. @RCDIR@/rc.conf
HWCLOCK_PARAMS="--systz"
HARDWARECLOCK=${HARDWARECLOCK:-UTC} HARDWARECLOCK=${HARDWARECLOCK:-UTC}
case $HARDWARECLOCK in case $HARDWARECLOCK in
UTC) HWCLOCK_PARAMS+=" --utc --noadjfile" ;; UTC) HWCLOCK_PARAMS+=" --utc" ;;
localtime) HWCLOCK_PARAMS+=" --localtime --noadjfile" ;; localtime) HWCLOCK_PARAMS+=" --localtime" ;;
*) HWCLOCK_PARAMS="";; *) HWCLOCK_PARAMS="";;
esac esac
case "$1" in case "$1" in
start) start)
hwclock $HWCLOCK_PARAMS || stat_die stat_busy "Adjusting hwclock"
hwclock --systz $HWCLOCK_PARAMS --noadjfile || stat_die
add_daemon hwclock add_daemon hwclock
stat_done stat_done
;; ;;
stop) stop)
hwclock --adjust $HWCLOCK_PARAMS || stat_die stat_busy "Adjusting hwclock"
hwclock --systohc $HWCLOCK_PARAMS || stat_die
rm_daemon hwclock rm_daemon hwclock
stat_done stat_done
;; ;;

View File

@@ -13,7 +13,7 @@ fsck_all() {
IGNORE_MOUNTED="-M" IGNORE_MOUNTED="-M"
fi fi
fsck -A -T -C${FSCK_FD} -a -t no${NETFS//,/,no},noopts=_netdev ${IGNORE_MOUNTED} -- ${FORCEFSCK} fsck -A -T -M -C${FSCK_FD} -a -t no${NETFS//,/,no},noopts=_netdev ${IGNORE_MOUNTED} -- ${FORCEFSCK}
} }
# Single-user login and/or automatic reboot after fsck (if needed) # Single-user login and/or automatic reboot after fsck (if needed)

View File

@@ -1,34 +0,0 @@
#!/bin/bash
# sourcing our current rc.conf requires this to be a bash script
. @RCLIBDIR@/functions
case "$1" in
start)
stat_busy "Mounting network filesystems"
mount -a -t "$NETFS"
rc=$?
mount -a -O _netdev
(( rc || $? )) && stat_die
add_daemon netfs
stat_done
;;
stop)
stat_busy "Unmounting network filesystems"
umount -a -f -O _netdev
rc=$?
umount -a -f -t "$NETFS"
(( rc || $? )) && stat_die
rm_daemon netfs
stat_done
;;
restart)
$0 stop
sleep 1
$0 start
;;
*)
echo "usage: $0 {start|stop|restart}"
exit 1
;;
esac

View File

@@ -4,7 +4,18 @@
. @RCLIBDIR@/functions . @RCLIBDIR@/functions
mount_procfs(){ mount_procfs(){
mountpoint -q /proc || mount -t proc proc /proc -o nosuid,noexec,nodev grep -v '^#' /etc/fstab | grep /proc | {
read -r spec file vfstype mntopts x
if ! mountpoint -q /proc; then
if [ "$spec" -a "$file" -a "$vfstype" -a "$mntopts" ]; then
mount -t "$vfstype" "$spec" "$file" -o "$mntopts"
else
mount -t proc proc /proc
fi
elif [ "$spec" -a "$file" -a "$vfstype" -a "$mntopts" ] && mountpoint -q /proc; then
mount -t "$vfstype" "$spec" "$file" -o "remount,$mntopts"
fi
}
} }
case "$1" in case "$1" in

View File

@@ -45,7 +45,7 @@ umount_fs() {
case "$1" in case "$1" in
start) start)
stat_busy "Mounting filesystema" stat_busy "Mounting filesystems"
mount_fs || stat_die root mount_fs || stat_die root
add_daemon root add_daemon root
stat_done root stat_done root

View File

@@ -6,7 +6,7 @@
case "$1" in case "$1" in
start) start)
stat_busy "Starting sysusers" stat_busy "Starting sysusers"
sysusers esysusers
add_daemon sysusers add_daemon sysusers
stat_done stat_done
;; ;;

View File

@@ -6,7 +6,7 @@
case "$1" in case "$1" in
start) start)
stat_busy "Starting tmpfiles-dev" stat_busy "Starting tmpfiles-dev"
tmpfiles --prefix=/dev --create --boot || stat_die tmpfiles-dev etmpfiles --prefix=/dev --create --boot || stat_die tmpfiles-dev
add_daemon tmpfiles-dev add_daemon tmpfiles-dev
stat_done tmpfiles-dev stat_done tmpfiles-dev
;; ;;

View File

@@ -6,7 +6,7 @@
case "$1" in case "$1" in
start) start)
stat_busy "Starting tmpfiles-setup" stat_busy "Starting tmpfiles-setup"
tmpfiles --exclude-prefix=/dev --create --remove --boot || stat_die tmpfiles-setup etmpfiles --exclude-prefix=/dev --create --remove --boot || stat_die tmpfiles-setup
add_daemon tmpfiles-setup add_daemon tmpfiles-setup
stat_done tmpfiles-setup stat_done tmpfiles-setup
;; ;;

View File

@@ -7,12 +7,15 @@ case "$1" in
start) start)
stat_busy "Starting udev daemon" stat_busy "Starting udev daemon"
udevd --daemon || stat_die udev udevd --daemon || stat_die udev
# Note: This is only needed for initialization, udev will
# be controlled by runit on stage 2.
add_daemon udev add_daemon udev
stat_done udev stat_done udev
;; ;;
stop) stop)
stat_busy "Stopping udev" stat_busy "Stopping udev"
udevadm control --exit || stat_die udev # check whether udevd might still be running.
! pgrep -f "udevd" >/dev/null 2>&1 || udevadm control --exit || stat_die udev
rm_daemon udev rm_daemon udev
stat_done udev stat_done udev
;; ;;