32 Commits

Author SHA1 Message Date
Eric Vidal
22f0fca0fd build default database 2016-06-10 09:10:33 +04:00
Eric Vidal
069c32c3c1 allow forcecheck if asked 2016-06-10 09:10:03 +04:00
Eric Vidal
36cf18ab0f add iptables features and fscheck options 2016-06-10 09:09:16 +04:00
Eric Vidal
be97f38a80 add iptables oneshot at boot time 2016-06-10 09:08:44 +04:00
Eric Vidal
1b297934a6 dmesg must be the last oneshot started before switching to bundle all-User 2016-06-10 09:08:04 +04:00
Eric Vidal
230d30ff1a clean /tmp directory at shutdown 2016-06-10 09:06:29 +04:00
Eric Vidal
8a2027df08 classify the compilation database source directory 2016-06-07 17:50:44 +04:00
Eric Vidal
d2a83294e0 fix obscur bug about ip link 2016-06-06 17:19:58 +04:00
Eric Vidal
a221f2dd22 grrr 2016-06-04 21:20:02 +04:00
Eric Vidal
905d8f07b2 add shutdown script 2016-06-04 16:15:43 +04:00
Eric Vidal
244c0a4203 change path for stage2, stage3 2016-06-04 09:36:00 +04:00
Eric Vidal
fa04d943a6 rebuild database 2016-06-03 22:10:36 +04:00
Eric Vidal
1758a4fe48 fix dependencies for rofs-hardclock 2016-06-03 22:10:02 +04:00
Eric Vidal
22bfa5e1a5 build again default database to follow the change 2016-06-02 18:21:07 +04:00
Eric Vidal
49d7bc3436 bring up after udevd 2016-06-02 18:20:36 +04:00
Eric Vidal
615bfc18a4 always exit with success to avoids crash if a check is made 2016-06-02 18:19:44 +04:00
Eric Vidal
0895fd81ac remove pipe for log entry on udevd udevadm 2016-05-31 20:15:47 +04:00
Eric Vidal
c56a5527ea provide a default database 2016-05-31 17:38:22 +04:00
Eric Vidal
fad5c2878f change place of compiled database for s6-rc, using current as symlink allow to change database on running time without changing the init and stage2 script 2016-05-31 17:37:56 +04:00
Eric Vidal
7c08fd3298 add directory for user service 2016-05-26 21:09:03 +04:00
Eric Vidal
d8ded07d97 rename boot service directory 2016-05-26 21:08:38 +04:00
Eric Vidal
14255da33d change origin of database 2016-05-26 21:05:35 +04:00
Eric Vidal
227e9634e4 oops 2016-05-25 13:16:18 +04:00
Eric Vidal
bd944a7194 improve s6-svc zsh completion 2016-05-25 13:15:09 +04:00
Eric Vidal
a70d048192 improve completion for s6-svc 2016-05-24 21:38:50 +04:00
Eric Vidal
33e7d5b330 fix bug about supervision control 2016-05-23 20:10:50 +04:00
Eric Vidal
5134fa1da5 oops 2016-05-23 13:12:54 +04:00
Eric Vidal
2d95062402 add zsh completion for s6-svc 2016-05-23 13:10:28 +04:00
Eric Vidal
502e66ab40 add log for divers service 2016-05-19 18:42:36 +04:00
Eric Vidal
f0d29a96d4 change command for divers Signal 2016-05-19 18:39:17 +04:00
Eric Vidal
465df8bf18 load environment for svscan 2016-05-19 18:38:21 +04:00
Eric Vidal
d13bf1f770 call SIGUSR2 instead of SIGUSR1 2016-05-19 18:37:21 +04:00
142 changed files with 418 additions and 120 deletions

113
_s6-svc Normal file
View File

@@ -0,0 +1,113 @@
#compdef s6-svc
# completion for s6-svc
# Eric Vidal <eric@obarun.org>
# services in /run/s6/service. Change the path variable to suit your needs.
path_dir=/run/s6/service
typeset -A opt_args
_path() {
local list_dir
list_dir=( $path_dir/* )
compadd "$@" -a list_dir
}
_list_common=(
'-a[send a SIGALRM to the supervised process]'
'-b[send a SIGABRT to the supervised process]'
'-q[send a SIGQUIT to the supervised process]'
'-h[send a SIGHUP to the supervised process]'
'-k[send a SIGKILL to the supervised process]'
'-t[send a SIGTERM to the supervised process]'
'-i[send a SIGINT to the supervised process]'
'-1[send a SIGUSR1 to the supervised process]'
'-2[send a SIGUSR2 to the supervised process]'
'-p[send a SIGSTOP to the supervised process]'
'-c[send a SIGCONT to the supervised process]'
'-y[send a SIGWINCH to the supervised process]'
'-o[once. Equivalent to -uO]'
'-d[down]'
'-u[up]'
'-x[exit]'
'-X[close fds and exit]'
'-O[Once at most. Do not restart when it dies]'
'-T[timeout]'
)
_list_special=(
'-wd[s6-svc will not exit until the service is down]'
'-wD[s6-svc will not exit until the service is down and ready to be brought up]'
'-wu[s6-svc will not exit until the service is up]'
'-wU[s6-svc will not exit until the service is up and ready]'
'-wr[s6-svc will not exit until the service has been started or restarted]'
'-wR[same as -wr but need to be notified readiness]'
)
_svc_action_none() {
_arguments \
"$_list_common[@]" \
"$_list_special[@]"
}
_svc() {
local context line i
typeset -A opt_args
case $words[CURRENT] in
*wd*|*wD*|*wu*|*wU*|*wr*|*wR*)
_arguments -s : \
"$_list_common[@]" \
"$_list_special[@]" \
'*:service:_path'
;;
*a*|*b*|*q*|*h*|*k*|*t*|*i*|*1*|*2*|*p*|*c*|*y*|*o*|*d*|*u*|*x*|*X*|*O*)
if [[ $words[CURRENT] == -*T ]]; then
_arguments : \
':\if the -wstate option has been given, -T specifies a timeout in milliseconds: ' \
'*:service:_path'
else
_arguments -s : \
"$_list_common[@]" \
"$_list_special[@]" \
'*:service:_path'
fi
;;
-T)
_arguments -s : \
':if the -wstate option has been given, -T specifies a timeout in milliseconds: ' \
'*:service:_path'
;;
*) i=$#;
while [[ $words[$i] != "s6-svc" ]];do
if [[ $words[$i] == -* ]]; then
break
else
i=$(($i-1))
fi
done
case $i in
-*)
if [[ $words[$i] != "s6-svc" ]]; then
_arguments -s : \
"$_list_common[@]" \
"$_list_special[@]" \
'*:service:_path'
else
_message "enter a - character to begin the completion"
fi
;;
*)
_svc_action_none
;;
esac
;;
esac
}
_svc "$@"

1
compiled/current Symbolic link
View File

@@ -0,0 +1 @@
/etc/s6/compiled/default

BIN
compiled/default/db Normal file

Binary file not shown.

BIN
compiled/default/n Normal file

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1 @@
S6_FDHOLDER_STORE_REGEX

View File

@@ -0,0 +1 @@
^pipe:s6rc-

View File

@@ -0,0 +1 @@
1

View File

@@ -0,0 +1,16 @@
#!/usr/local/bin/execlineb -P
pipeline -dw --
{
if -n --
{
forstdin -x 1 -- i
exit 1
}
if -nt --
{
s6-ipcclient -l0 -- s
/usr/libexec/s6-rc-fdholder-filler -1 --
}
s6-svc -t .
}
s6-fdholder-daemon -1 -i data/rules -- s

View File

@@ -0,0 +1 @@
3

View File

@@ -0,0 +1,8 @@
#!/usr/local/bin/execlineb -P
fdmove -c 2 1
fdmove 1 3
s6-ipcserver-socketbinder -- s
s6-ipcserverd -1 --
s6-ipcserver-access -v0 -E -l0 -i data/rules --
s6-sudod -t 2000 --
/usr/libexec/s6-rc-oneshot-run -l ../.. --

View File

@@ -1,5 +1,6 @@
#!/usr/local/bin/execlineb -P
fdmove -c 2 1
if { s6-echo -- udevd-udev started }
exec -c
udevd

View File

@@ -1,4 +1,5 @@
#!/usr/local/bin/execlineb -P
fdmove -c 2 1
if { s6-echo -- udevd-udevadm started }
s6-devd
/usr/bin/udevadm settle

1
compiled/previous Symbolic link
View File

@@ -0,0 +1 @@
/etc/s6/compiled/default

4
init
View File

@@ -58,7 +58,6 @@ if {
import -i svc-serv
foreground {
if { cp -a ${svc-serv} /run/s6 }
cp -a /etc/s6/rc-serv /run/.rc-serv
}
# Create symlink to /run/s6-run
@@ -80,9 +79,10 @@ background {
s6-setsid --
redirfd -w 1 /run/s6-run/service/s6-svscan-log/fifo
fdmove -c 2 1
/etc/stage2
/etc/s6/stage2
}
unexport !
fdmove -c 2 1
s6-envdir -I /run/s6-run/service/.s6-svscan/
s6-svscan -st0 /run/s6-run/service

View File

@@ -1,3 +1,3 @@
#!/bin/bash
exec /run/s6-run/service/.s6-svscan/SIGUSR1
exec /run/s6-run/service/.s6-svscan/SIGUSR2

View File

@@ -1,5 +1,6 @@
#!/usr/local/bin/execlineb -P
fdmove -c 2 1
if { s6-echo -- 00 started }
s6-envdir /etc/s6/env/s6-conf
# mount proc sys dev run if doesn't exist
#import -i HOSTNAME
@@ -30,17 +31,20 @@ if {
}
# finaly mount /dev/shm /dev/pts
forx -p third { shm pts }
import -ui third
if {
foreground {
if -n { mountpoint -q /dev/$third }
if { s6-mkdir -p -m 0755 /dev/$third }
s6-envdir /etc/s6/env/mount/$third
import -ui fstype
import -ui device
import -ui mountpoint
import -ui options
s6-mount -o $options -n -t $fstype $device $mountpoint
}
forx -p third { shm pts }
import -ui third
if {
foreground {
if -n { mountpoint -q /dev/$third }
if { s6-mkdir -p -m 0755 /dev/$third }
s6-envdir /etc/s6/env/mount/$third
import -ui fstype
import -ui device
import -ui mountpoint
import -ui options
s6-mount -o $options -n -t $fstype $device $mountpoint
}
}
}
s6-echo -- 00 successfully started

View File

@@ -7,6 +7,5 @@ rofs-Udevd
rofs-Checkfs
rofs-modules
rofs-swap
rofs-loopback
rofs-kernruntime

View File

@@ -1,6 +1,9 @@
rwfs-fsrw
rwfs-loopback
rwfs-iptables
rwfs-nonetwork
rwfs-localtime
rwfs-random
rwfs-cleanboot
rwfs-end
rwfs-dmesglog

View File

@@ -1,6 +1,7 @@
#!/usr/local/bin/execlineb -P
fdmove -c 2 1
if { s6-echo -- checkfs-brtfs started }
s6-envdir /etc/s6/env/s6-conf
import -D "" USEBTRFS
foreground {
@@ -8,4 +9,4 @@ foreground {
if { s6-test -x /usr/bin/btrfs }
btrfs device scan
}
true
s6-echo -- checkfs-brtfs successfully started

View File

@@ -1,6 +1,7 @@
#!/usr/local/bin/execlineb -P
fdmove -c 2 1
if { s6-echo -- checkfs-dmraid started }
s6-envdir /etc/s6/env/s6-conf
import -D "" USEDMRAID
foreground {
@@ -8,4 +9,4 @@ foreground {
if { s6-test -x /usr/bin/dmraid }
dmraid -i -ay
}
true
s6-echo -- checkfs-dmraid successfully started

View File

@@ -0,0 +1,21 @@
#!/usr/local/bin/execlineb -P
fdmove -c 2 1
if { s6-echo -- checkfs-fsckeck started }
s6-envdir /etc/s6/env/s6-conf
import -D "" FORCECHCK
if -t {
if { s6-test $FORCECHCK = yes }
redirfd -w 1 /dev/console
if { s6-echo -- Check of filesystem was asked, please wait }
if { fsck -A -T -a -f noopts=_netdev }
if { s6-echo -- Filesystem checked }
redirfd -w 1 /run/s6/service/s6-svscan-log/fifo
s6-true
}
# if partition is checked, fsck return a fail exit
# and a crash occurs, so whatever happens with fsck, the output need to be a success
if -t {
fsck -A -T -a noopts=_netdev
}
wait { }
s6-echo -- checkfs-fscheck successfully started

View File

@@ -1,6 +1,7 @@
#!/usr/local/bin/execlineb -P
fdmove -c 2 1
if { s6-echo -- rofs-cgroups started }
s6-envdir /etc/s6/env/s6-conf
import -D "" CGROUPS
foreground {
@@ -16,4 +17,4 @@ foreground {
if { s6-mkdir /sys/fs/cgroup/${i} }
s6-mount -t cgroup -o ${i} -- cgroup /sys/fs/cgroup/${i}
}
true
s6-echo -- rofs-cgroups successfully started

View File

@@ -0,0 +1,19 @@
#!/usr/local/bin/execlineb -P
fdmove -c 2 1
if { s6-echo -- rofs-console started }
s6-envdir /etc/s6/env/s6-conf
import -D "" KEYMAP
import -D "" FONT
import -D "" FONT_MAP
import -D "" FONT_UNIMAP
foreground {
loadkeys -q -u $KEYMAP
}
foreground {
forx index { 0 1 2 3 4 5 6 7 8 9 10 }
import -u index
setfont -m $FONT_MAP -u $FONT_UNIMAP $FONT -C /dev/tty${index}
}
s6-echo -- rofs-console successfully started

View File

@@ -0,0 +1,15 @@
#!/usr/local/bin/execlineb -P
fdmove -c 2 1
if { s6-echo -- rofs-hardclock started }
foreground {
s6-envdir /etc/s6/env/s6-conf
import -D "" TZ
import -D "" HARDWARECLOCK
pipeline -d { echo $HARDWARECLOCK }
pipeline { tr A-Z a-z }
forstdin -- clock
import -iu clock
hwclock --systz --${clock} --noadjfile
}
s6-echo -- rofs-hardclock successfully started

View File

@@ -0,0 +1,14 @@
#!/usr/local/bin/execlineb -P
fdmove -c 2 1
if { s6-echo -- rofs-kermod started }
foreground {
pipeline -d { kmod static-nodes }
pipeline { s6-grep -F -- Module: }
pipeline { s6-cut -d":" -f2 }
pipeline { s6-cut -d" " -f2 }
forstdin -d"\n" -- mod
import -iu mod
modprobe $mod
}
s6-echo -- rofs-kermod successfully started

View File

@@ -1,6 +1,7 @@
#!/usr/bin/execlineb -P
fdmove -c 2 1
if { s6-echo -- rofs-kernruntime started }
s6-envdir /etc/s6/env/s6-conf
import -D "" KERNELRUNTIME
foreground {
@@ -9,4 +10,4 @@ foreground {
if { s6-test -e /etc/sysctl.conf }
sysctl -p /etc/sysctl.conf
}
true
s6-echo -- rofs-kernruntime successfully started

View File

@@ -1,6 +1,7 @@
#!/usr/local/bin/execlineb -P
fdmove -c 2 1
if { s6-echo -- rofs-modules started }
foreground {
if { s6-test -e /etc/s6/env/s6-conf/MODULES }
redirfd -r 0 /etc/s6/env/s6-conf/MODULES
@@ -11,4 +12,4 @@ foreground {
modprobe -ab $mods
}
}
true
s6-echo -- rofs-modules successfully started

View File

@@ -1,10 +1,11 @@
#!/usr/local/bin/execlineb -P
fdmove -c 2 1
if { s6-echo -- rofs-swap started }
s6-envdir /etc/s6/env/s6-conf
import -D "" USESWAP
foreground {
if { s6-test $USESWAP = yes }
swapon -a
}
true
s6-echo -- rofs-swap successfully started

View File

@@ -1,6 +1,7 @@
#!/usr/local/bin/execlineb -P
fdmove -c 2 1
if { s6-echo -- rwfs-cleanboot started }
if -t { install -m0664 -o root -g utmp /dev/null /run/utmp }
if -nt { s6-test -e /var/log/wtmp }
@@ -8,4 +9,5 @@ if -t { install -m0664 -o root -g utmp /dev/null /var/log/wtmp }
if -nt { s6-test -e /var/log/btmp }
if -t { install -m0600 -o root -g utmp /dev/null /var/log/btmp }
install -dm1777 /tmp/.X11-unix /tmp/.ICE-unix
if -t { install -dm1777 /tmp/.X11-unix /tmp/.ICE-unix }
s6-echo -- rwfs-cleanboot successfully started

View File

@@ -0,0 +1 @@
rwfs-end

View File

@@ -0,0 +1,8 @@
#!/usr/local/bin/execlineb -P
fdmove -c 2 1
if { s6-echo -- rwfs-dmesglog started }
foreground {
redirfd -w 1 /var/log/dmesg.log
dmesg
}
s6-echo -- rwfs-dmesglog successfully started

View File

@@ -0,0 +1,7 @@
rwfs-fsrw
rwfs-loopback
rwfs-iptables
rwfs-nonetwork
rwfs-localtime
rwfs-random
rwfs-cleanboot

0
rc-serv-boot/rwfs-end/up Normal file
View File

View File

@@ -0,0 +1 @@
oneshot

View File

@@ -0,0 +1,5 @@
#!/usr/local/bin/execlineb -P
fdmove -c 2 1
if { s6-echo -- rwfs-fsrw started }
if { s6-mount -o remount,rw / / }
s6-echo -- rwfs-fsrw successfully started

View File

@@ -0,0 +1,2 @@
rwfs-fsrw
rwfs-loopback

View File

@@ -0,0 +1,17 @@
#!/usr/local/bin/execlineb -P
fdmove -c 2 1
s6-envdir /etc/s6/env/s6-conf
import -D "" IPTABLES
import -D "" IP6TABLES
foreground {
if { s6-test $IPTABLES = yes }
if { s6-echo -- Flushing iptables }
/usr/lib/iptables/scripts/iptables-flush
}
foreground {
if { s6-test $IP6TABLES = yes }
if { s6-echo -- Flushing ip6tables }
/usr/lib/iptables/scripts/iptables-flush 6
}
s6-true

View File

@@ -0,0 +1,22 @@
#!/usr/local/bin/execlineb -P
fdmove -c 2 1
if { s6-echo -- rwfs-iptables started }
s6-envdir /etc/s6/env/s6-conf
import -D "" IPTABLES
import -D "" IP6TABLES
foreground {
if { s6-test $IPTABLES = yes }
if { s6-test -e /etc/iptables/iptables.rules }
if { s6-echo -- Activing iptables }
if { iptables-restore /etc/iptables/iptables.rules }
s6-echo -- Iptables actived
}
foreground {
if { s6-test $IP6TABLES = yes }
if { s6-test -e /etc/iptables/ip6tables.rules }
if { s6-echo -- Activing ip6tables }
ip6tables-restore /etc/iptables/ip6tables.rules
s6-echo -- Ip6tables actived
}
s6-echo -- rwfs-iptables successfully started

View File

@@ -0,0 +1,8 @@
#!/usr/local/bin/execlineb -P
fdmove -c 2 1
if { s6-echo -- rwfs-localtime started }
s6-envdir /etc/s6/env/s6-conf
import -D "" TZ
if { s6-ln -sf /usr/share/zoneinfo/${TZ} /etc/localtime }
s6-echo -- rwfs-localtime successfully started

View File

@@ -0,0 +1,6 @@
#!/usr/local/bin/execlineb -P
fdmove -c 2 1
if { s6-echo -- rwfs-loopback started }
if { ip link set up dev lo }
s6-echo -- rwfs-loopback successfully started

View File

@@ -0,0 +1,6 @@
#!/usr/bin/execlineb -P
fdmove -c 2 1
if { s6-echo -- rwfs-nonetwork started }
if { mount -a -t "nosysfs,nonfs,nonfs4,nosmbfs,nocifs" -O no_netdev }
s6-echo -- rwfs-nonetwork successfully started

View File

@@ -1,7 +1,7 @@
#!/usr/local/bin/execlineb -P
fdmove -c 2 1
if { s6-echo -- rwfs-random started }
foreground {
cp /var/lib/random-seed /dev/urandom
}
@@ -20,4 +20,5 @@ if -t {
umask 077
redirfd -w 1 /dev/null
dd if=/dev/urandom of=/var/lib/random-seed count=1 bs=$bytes
if { dd if=/dev/urandom of=/var/lib/random-seed count=1 bs=$bytes }
s6-echo -- rwfs-random successfully started

View File

@@ -0,0 +1,6 @@
#!/usr/local/bin/execlineb -P
fdmove -c 2 1
if { s6-echo -- udevd-udev started }
exec -c
udevd

Some files were not shown because too many files have changed in this diff Show More