From b2fec086b9f498102537e0ff936138b2960e4082 Mon Sep 17 00:00:00 2001 From: Juan RP Date: Fri, 25 Apr 2014 23:20:32 +0200 Subject: Initial import of runit init scripts based on ignite. I did not use ignite because it needs bash, and I don't really want it. --- foo/etc/runit/1 | 99 +++++++++++++++++++++++++++++ foo/etc/runit/2 | 24 +++++++ foo/etc/runit/3 | 45 +++++++++++++ foo/etc/runit/ctrlaltdel | 11 ++++ foo/etc/runit/runsvdir/current | 1 + foo/etc/runit/runsvdir/default/agetty-tty1 | 1 + foo/etc/runit/runsvdir/default/agetty-tty2 | 1 + foo/etc/runit/runsvdir/default/agetty-tty3 | 1 + foo/etc/runit/runsvdir/default/agetty-tty4 | 1 + foo/etc/runit/runsvdir/default/agetty-tty5 | 1 + foo/etc/runit/runsvdir/default/agetty-tty6 | 1 + foo/etc/runit/runsvdir/default/avahi-daemon | 1 + foo/etc/runit/runsvdir/default/dbus | 1 + foo/etc/runit/runsvdir/default/dcron | 1 + foo/etc/runit/runsvdir/default/dhcpcd | 1 + foo/etc/runit/runsvdir/single/sulogin | 1 + 16 files changed, 191 insertions(+) create mode 100755 foo/etc/runit/1 create mode 100755 foo/etc/runit/2 create mode 100755 foo/etc/runit/3 create mode 100755 foo/etc/runit/ctrlaltdel create mode 120000 foo/etc/runit/runsvdir/current create mode 120000 foo/etc/runit/runsvdir/default/agetty-tty1 create mode 120000 foo/etc/runit/runsvdir/default/agetty-tty2 create mode 120000 foo/etc/runit/runsvdir/default/agetty-tty3 create mode 120000 foo/etc/runit/runsvdir/default/agetty-tty4 create mode 120000 foo/etc/runit/runsvdir/default/agetty-tty5 create mode 120000 foo/etc/runit/runsvdir/default/agetty-tty6 create mode 120000 foo/etc/runit/runsvdir/default/avahi-daemon create mode 120000 foo/etc/runit/runsvdir/default/dbus create mode 120000 foo/etc/runit/runsvdir/default/dcron create mode 120000 foo/etc/runit/runsvdir/default/dhcpcd create mode 120000 foo/etc/runit/runsvdir/single/sulogin (limited to 'foo/etc/runit') diff --git a/foo/etc/runit/1 b/foo/etc/runit/1 new file mode 100755 index 0000000..c498ac7 --- /dev/null +++ b/foo/etc/runit/1 @@ -0,0 +1,99 @@ +#!/bin/sh +# vim: set ts=4 sw=4 et: + +PATH=/usr/bin:/usr/sbin + +echo "Welcome to Void!" + +. /etc/rc.conf + +echo "Mounting pseudo-filesystems..." + +mountpoint -q /proc || mount -t proc proc /proc -o nosuid,noexec,nodev +mountpoint -q /sys || mount -t sysfs sys /sys -o nosuid,noexec,nodev +mountpoint -q /run || mount -t tmpfs run /run -o mode=0755,nosuid,nodev +mountpoint -q /dev || mount -t devtmpfs dev /dev -o mode=0755,nosuid + +mkdir -p -m0755 /run/runit /run/lvm /run/user /dev/pts /dev/shm +mountpoint -q /dev/pts || mount -n -t devpts devpts /dev/pts -o mode=0620,gid=5,nosuid,noexec +mountpoint -q /dev/shm || mount -n -t tmpfs shm /dev/shm -o mode=1777,nosuid,nodev + +echo "Remounting rootfs read-only..." +mount -o remount,ro / + +echo "Setting up console fonts..." +for i in /dev/tty[0-6]; do + unicode_start < $i + [ -n "$CONSOLEFONT" ] && setfont ${CONSOLEMAP:+-m $CONSOLEMAP} $CONSOLEFONT -C $i +done + +echo "Loading keymap ${KEYMAP:-us}..." +loadkeys -q -u ${KEYMAP:-us} + +if [ -n "$HARDWARECLOCK" ]; then + echo "Setting up RTC to ${HARDWARECLOCK}..." + TZ=$TIMEZONE hwclock --systz \ + ${HARDWARECLOCK:+--$(echo $HARDWARECLOCK |tr A-Z a-z) --noadjfile} +fi + +if [ -x /usr/lib/systemd/systemd-udevd ]; then + _udevd=/usr/lib/systemd/systemd-udevd +elif [ -x /usr/sbin/udevd ]; then + _udevd=/usr/sbin/udevd +else + echo "WARNING: cannot find udevd!" +fi + +if [ -n "${_udevd}" ]; then + echo "Starting udevd and waiting for devices to settle..." + ${_udevd} --daemon + udevadm trigger --action=add --type=subsystems + udevadm trigger --action=add --type=devices + udevadm settle +fi + +echo "Setting up loopback interface..." +ip link set up dev lo + +echo "Setting up hostname..." +if [ -n "$HOSTNAME" ]; then + echo "$HOSTNAME" > /proc/sys/kernel/hostname +elif [ -r /etc/hostname ]; then + cat /etc/hostname > /proc/sys/kernel/hostname +fi + +echo "Checking filesystems..." +fsck -A -T -a -t noopts=_netdev + +echo "Mounting rootfs read-write..." +mount -o remount,rw / + +echo "Mounting all non-network filesystems..." +mount -a -t "nosysfs,nonfs,nonfs4,nosmbfs,nocifs" -O no_netdev + +echo "Initializing swap..." +swapon -a + +if [ -n "$TIMEZONE" ]; then + echo "Setting up timezone to ${TIMEZONE}..." + ln -sf "/usr/share/zoneinfo/$TIMEZONE" /etc/localtime +fi + +echo "Initializing random seed..." +cp /var/lib/random-seed /dev/urandom >/dev/null 2>&1 || true +( umask 077; dd if=/dev/urandom of=/var/lib/random-seed count=1 bs=512 >/dev/null 2>&1 ) + +install -m0664 -o root -g utmp /dev/null /run/utmp +rm -f /etc/nologin /forcefsck /forcequotacheck /fastboot + +if [ -n "$MODULES" ]; then + echo "Loading kernel modules..." + modprobe -ab ${MODULES} +fi + +dmesg >/var/log/dmesg.log + +install -m0 /dev/null /etc/runit/reboot +install -m0 /dev/null /etc/runit/stopit + +echo "Initialization complete, starting services..." diff --git a/foo/etc/runit/2 b/foo/etc/runit/2 new file mode 100755 index 0000000..c793759 --- /dev/null +++ b/foo/etc/runit/2 @@ -0,0 +1,24 @@ +#!/bin/sh +# vim: set ts=4 sw=4 et: + +PATH=/usr/bin:/usr/sbin + +runlevel=default +for arg in $(cat /proc/cmdline); do + case $arg in + single) echo "Initializing single user mode..."; runlevel=single;; + esac +done + +# Setup first tty as unicode again, stage1 does not work correctly for tty1. +unicode_start + +# Create runlevel and then copy services. +if [ -d /etc/runit/runsvdir/${runlevel} ]; then + mkdir -p /run/runit/runsvdir + cp -aP /etc/runit/runsvdir/${runlevel} /run/runit/runsvdir + ln -s /run/runit/runsvdir/${runlevel} /run/runit/runsvdir/current +fi + +exec env - PATH=$PATH \ + runsvdir -P /run/runit/runsvdir/current 'log: ...........................................................................................................................................................................................................................................................................................................................................................................................................' diff --git a/foo/etc/runit/3 b/foo/etc/runit/3 new file mode 100755 index 0000000..577568d --- /dev/null +++ b/foo/etc/runit/3 @@ -0,0 +1,45 @@ +#!/bin/sh +# vim: set ts=4 sw=4 et: + +PATH=/usr/bin:/usr/sbin + +. /etc/rc.conf + +if [ -e /run/runit/reboot ]; then + touch /etc/runit/reboot + chmod 100 /etc/runit/reboot +fi + +echo "Waiting for services to stop..." +sv -w196 force-stop /var/service/* +sv exit /var/service/* + +stty onlcr + +echo "Saving random seed..." +dd if=/dev/urandom of=/var/lib/random-seed count=1 bs=512 >/dev/null 2>&1 + +if [ -n "$HARDWARECLOCK" ]; then + hwclock --systohc ${HARDWARECLOCK:+--$(echo $HARDWARECLOCK |tr A-Z a-z)} +fi + +halt -w # for utmp + +echo "Stopping udev..." +udevadm control --exit + +echo "Sending TERM signal to processes..." +pkill --inverse -s0,1 -TERM +sleep 5 +echo "Sending KILL signal to processes..." +pkill --inverse -s0,1 -KILL + +echo "Unmounting filesystems, disabling swap..." +umount /tmp +swapoff -a +umount -r -a -t nosysfs,noproc,nodevtmpfs,notmpfs + +echo "Remounting rootfs read-only..." +mount -o remount,ro / +sleep 1 +sync diff --git a/foo/etc/runit/ctrlaltdel b/foo/etc/runit/ctrlaltdel new file mode 100755 index 0000000..af70ed6 --- /dev/null +++ b/foo/etc/runit/ctrlaltdel @@ -0,0 +1,11 @@ +#!/bin/sh + +PATH=/usr/bin:/usr/sbin +MSG="System is going down..." + +# We check for this file in stage3 to halt or reboot +touch /run/runit/reboot + +# Proceed with shutdown process +touch /etc/runit/stopit +chmod 100 /etc/runit/stopit && echo "$MSG" | wall diff --git a/foo/etc/runit/runsvdir/current b/foo/etc/runit/runsvdir/current new file mode 120000 index 0000000..331d858 --- /dev/null +++ b/foo/etc/runit/runsvdir/current @@ -0,0 +1 @@ +default \ No newline at end of file diff --git a/foo/etc/runit/runsvdir/default/agetty-tty1 b/foo/etc/runit/runsvdir/default/agetty-tty1 new file mode 120000 index 0000000..0c09cd8 --- /dev/null +++ b/foo/etc/runit/runsvdir/default/agetty-tty1 @@ -0,0 +1 @@ +/etc/sv/agetty-tty1 \ No newline at end of file diff --git a/foo/etc/runit/runsvdir/default/agetty-tty2 b/foo/etc/runit/runsvdir/default/agetty-tty2 new file mode 120000 index 0000000..7c0c41b --- /dev/null +++ b/foo/etc/runit/runsvdir/default/agetty-tty2 @@ -0,0 +1 @@ +/etc/sv/agetty-tty2 \ No newline at end of file diff --git a/foo/etc/runit/runsvdir/default/agetty-tty3 b/foo/etc/runit/runsvdir/default/agetty-tty3 new file mode 120000 index 0000000..d6514b8 --- /dev/null +++ b/foo/etc/runit/runsvdir/default/agetty-tty3 @@ -0,0 +1 @@ +/etc/sv/agetty-tty3 \ No newline at end of file diff --git a/foo/etc/runit/runsvdir/default/agetty-tty4 b/foo/etc/runit/runsvdir/default/agetty-tty4 new file mode 120000 index 0000000..b27438b --- /dev/null +++ b/foo/etc/runit/runsvdir/default/agetty-tty4 @@ -0,0 +1 @@ +/etc/sv/agetty-tty4 \ No newline at end of file diff --git a/foo/etc/runit/runsvdir/default/agetty-tty5 b/foo/etc/runit/runsvdir/default/agetty-tty5 new file mode 120000 index 0000000..311b9f7 --- /dev/null +++ b/foo/etc/runit/runsvdir/default/agetty-tty5 @@ -0,0 +1 @@ +/etc/sv/agetty-tty5 \ No newline at end of file diff --git a/foo/etc/runit/runsvdir/default/agetty-tty6 b/foo/etc/runit/runsvdir/default/agetty-tty6 new file mode 120000 index 0000000..97ff268 --- /dev/null +++ b/foo/etc/runit/runsvdir/default/agetty-tty6 @@ -0,0 +1 @@ +/etc/sv/agetty-tty6 \ No newline at end of file diff --git a/foo/etc/runit/runsvdir/default/avahi-daemon b/foo/etc/runit/runsvdir/default/avahi-daemon new file mode 120000 index 0000000..95977b7 --- /dev/null +++ b/foo/etc/runit/runsvdir/default/avahi-daemon @@ -0,0 +1 @@ +/etc/sv/avahi-daemon \ No newline at end of file diff --git a/foo/etc/runit/runsvdir/default/dbus b/foo/etc/runit/runsvdir/default/dbus new file mode 120000 index 0000000..34c103f --- /dev/null +++ b/foo/etc/runit/runsvdir/default/dbus @@ -0,0 +1 @@ +/etc/sv/dbus \ No newline at end of file diff --git a/foo/etc/runit/runsvdir/default/dcron b/foo/etc/runit/runsvdir/default/dcron new file mode 120000 index 0000000..5487a89 --- /dev/null +++ b/foo/etc/runit/runsvdir/default/dcron @@ -0,0 +1 @@ +/etc/sv/dcron \ No newline at end of file diff --git a/foo/etc/runit/runsvdir/default/dhcpcd b/foo/etc/runit/runsvdir/default/dhcpcd new file mode 120000 index 0000000..532d6ff --- /dev/null +++ b/foo/etc/runit/runsvdir/default/dhcpcd @@ -0,0 +1 @@ +/etc/sv/dhcpcd \ No newline at end of file diff --git a/foo/etc/runit/runsvdir/single/sulogin b/foo/etc/runit/runsvdir/single/sulogin new file mode 120000 index 0000000..1a52f41 --- /dev/null +++ b/foo/etc/runit/runsvdir/single/sulogin @@ -0,0 +1 @@ +/etc/sv/sulogin \ No newline at end of file -- cgit 1.4.1