Skip to content

Commit 653dcea

Browse files
committed
Enable rc to enable, disable, and list services.
1 parent f1cba6e commit 653dcea

File tree

1 file changed

+46
-8
lines changed

1 file changed

+46
-8
lines changed

rc

100644100755
Lines changed: 46 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -10,23 +10,33 @@ log() {
1010
printf "\033[1;3%sm%s\033[00m\n" "$color" "$*"
1111
}
1212

13+
log_noline() {
14+
color="$1"
15+
shift
16+
printf "\033[1;3%sm%s\033[00m" "$color" "$*"
17+
}
18+
1319
panic() {
1420
log 1 "There was an error, starting emergency shell. Type exit to continue boot."
1521
/bin/sh
1622
}
1723

1824
startup() {
25+
export PATH=/bin:$PATH
26+
# Set console font
27+
[ -z "$FONT" ] || loadfont < "/usr/share/consolefonts/$FONT"
28+
1929
# Mount API filesystems
2030
log 3 "Mounting API filesystems..."
21-
mount -t proc proc /proc -o nosuid,noexec,nodev
22-
mount -t sysfs sys /sys -o nosuid,noexec,nodev
23-
mount -t tmpfs run /run -o mode=0755,nosuid,nodev
24-
mount -t devtmpfs dev /dev -o mode=0755,nosuid
31+
mountpoint -q /proc || mount -t proc proc /proc -o nosuid,noexec,nodev
32+
mountpoint -q /sys || mount -t sysfs sys /sys -o nosuid,noexec,nodev
33+
mountpoint -q /run || mount -t tmpfs run /run -o mode=0755,nosuid,nodev
34+
mountpoint -q /dev || mount -t devtmpfs dev /dev -o mode=0755,nosuid
2535

2636
mkdir -p /run/user /run/lock /run/log /run/runit /dev/pts /dev/shm
2737

28-
mount -t devpts devpts /dev/pts -o mode=0620,gid=5,nosuid,noexec
29-
mount -t tmpfs shm /dev/shm -o mode=1777,nosuid,nodev
38+
mountpoint -q /dev/pts || mount -t devpts devpts /dev/pts -o mode=0620,gid=5,nosuid,noexec
39+
mountpoint -q /dev/shm || mount -t tmpfs shm /dev/shm -o mode=1777,nosuid,nodev
3040

3141
# Initialize devices
3242
log 3 "Setting up loopback device..."
@@ -44,7 +54,7 @@ startup() {
4454
mount -o remount,ro / || panic
4555

4656
log 3 "Checking filesystems..."
47-
fsck -ATat noopts=_netdev
57+
fsck -ATat noopts=_netdev > /run/log/fsck
4858
[ $? -gt 1 ] && panic
4959

5060
log 3 "Mounting all filesystems..."
@@ -90,11 +100,39 @@ shutdown() {
90100
log 1 "Shutting down."
91101
}
92102

103+
sv_enable() {
104+
ln -sv /etc/sv/$1 /var/service/
105+
sv up $1
106+
}
107+
108+
sv_disable() {
109+
sv down $1
110+
rm -v /var/service/$1
111+
}
112+
113+
sv_list() {
114+
for sv in /etc/sv/*; do
115+
if [ -L /var/service/$(basename $sv) ]; then
116+
log_noline 2 "[x] "
117+
log 0 $(basename $sv)
118+
else
119+
log_noline 1 "[ ] "
120+
log 0 $(basename $sv)
121+
fi
122+
done
123+
}
124+
93125
case $1 in
94126
startup)
95127
startup;;
96128
shutdown)
97129
shutdown;;
130+
enable)
131+
sv_enable $2;;
132+
disable)
133+
sv_disable $2;;
134+
list)
135+
sv_list;;
98136
*)
99-
echo "Usage: $0 [startup | shutdown]";;
137+
echo "Usage: $0 [enable | disable | list] [sv]";;
100138
esac

0 commit comments

Comments
 (0)