1 MKSHELL=/opt/plan9/bin/rc
4 test-start:VQPservice -u: foo-start
8 test-stop:VQPservice -d: /
22 # Initial setup/shutdown for mkinit
25 $P mount -o remount,rw /
26 $P mount -t tmpfs tmpfs /lib/mkinit/state
27 # mount proc here to make bootchart happier
28 $P mount -t proc proc /proc
31 # Kill all process, then remount and sync
32 halt:QVE: utmp-stop hwclock-stop alsa-stop
33 echo TERMinating all processes
34 $P pkill -15 --inverse -g0 >/dev/null >[2=1]
36 { $P pgrep -vg0 && $P sleep 1 }
37 echo KILLing all processes
38 $P pkill -9 --inverse -g0 >/dev/null >[2=1]
40 { $P pgrep -vg0 && $P sleep 1 }
42 echo Remounting read-only
43 $P mount -o remount,ro /
48 # Listener for /dev/initctl, for shutdown(8)
49 initctl-start:VPservice -u: boot
53 { exec $P initctld $fifo |
55 $P mkinit $line >/dev/console >[2=1]
58 initctl-stop_cmd=fuser -k /dev/initctl
61 mounts-start:VPservice -u: $devnodes-start
62 $P mdadm -A /dev/md2 /dev/sd[bcd]2 || true
63 $P ln -snf /proc/self/fd /dev/fd
68 font-start_cmd=setfont
71 devtmpfs-start:VEPservice -u: boot
77 devawk-start:VEPservice -u: devtmpfs-start
78 $P echo /root/bin/dev.awk > /proc/sys/kernel/hotplug
82 devsh-start:VEPservice -u: devtmpfs-start
83 $P echo /root/bin/dev.sh > /proc/sys/kernel/hotplug
84 $P /root/bin/dev.sh -a
87 mdev-start:VEPservice -u: devtmpfs-start
88 $P echo /sbin/mdev > /proc/sys/kernel/hotplug
92 udev-start:VEPservice -u: mounts-start
95 $P udevadm settle '--timeout=10'
97 udev-stop_cmd=pkill udevd
100 modules-start:VEPservice -u: mounts-start
101 for (i in `{find /sys/devices -name wakeup -not -path '*PWRBN*'})
102 { $P echo disabled > $i }
105 # Intel graphics card
106 intel-start:VEPservice -u: mounts-start
107 $P modprobe i915 'modeset=1'
108 $P modprobe nouveau 'modeset=1'
109 $P echo OFF > /sys/kernel/debug/vgaswitcheroo/switch
112 # Nvidia graphics card
113 nvidia-start:VEPservice -u: mounts-start
114 $P modprobe i915 'modeset=1'
115 $P modprobe nouveau 'modeset=1'
116 $P echo DDIS > /sys/kernel/debug/vgaswitcheroo/switch
117 $P echo 0 > /sys/class/vtconsole/vtcon1/bind
118 $P modprobe -r nouveau
120 $P setpci -v -H1 -s '00:01.00' 'BRIDGE_CONTROL=0'
123 # Nouveau graphics card
124 nouveau-start:VEPservice -u: mounts-start
125 $P modprobe i915 'modeset=1'
126 $P modprobe nouveau 'modeset=1'
127 $P echo DDIS > /sys/kernel/debug/vgaswitcheroo/switch
128 $P echo 0 > /sys/class/vtconsole/vtcon1/bind
129 $P modprobe -r nouveau
130 $P modprobe nouveau 'modeset=1'
133 # Clean out /tmp and /var/run directories
134 fsclean-start:VPservice -u: boot
135 dirs=(/run /var/run /tmp)
137 $P mv $dirs /.old || true
140 $P install -m 1777 -d /var/run/screen # Fuck you Screen
141 $P exec rm -rf /.old &
145 hwkeys-start:VEPservice -u: mounts-start
146 $P /root/bin/touchpad.sh
149 hwkeys-stop_cmd=pkill hwkeys
151 # Spawn gettyd for tty[23456]
152 gettyd-start:VEPservice -u: hostname-start utmp-start
153 $P exec gettyd tty2 tty3 tty4 tty5 tty6 &
155 gettyd-stop_cmd=fuser -k /dev/tty2 /dev/tty3 /dev/tty4 /dev/tty5 /dev/tty6
157 # Spawn agettys for tty[23456]
158 agetty-start:VEPservice -u: hostname-start utmp-start
159 $P respawn setsid agetty 38400 tty2 linux
160 $P respawn setsid agetty 38400 tty3 linux
161 $P respawn setsid agetty 38400 tty4 linux
162 $P respawn setsid agetty 38400 tty5 linux
163 $P respawn setsid agetty 38400 tty6 linux
165 agetty-stop_cmd=fuser -k /dev/tty2 /dev/tty3 /dev/tty4 /dev/tty5 /dev/tty6
167 # Spawn qingys for tty[7]
168 qingy-start:VEPservice -u: hostname-start utmp-start modules-start $devnodes-start
169 $P /root/bin/touchpad.sh
170 $P exec setsid /sbin/qingy tty7 &
173 qingy-stop_cmd=fuser -k /dev/tty7
175 # Spawn xorg on tty[7]
176 xinit-start:VEPservice -u: mounts-start
177 $P /root/bin/gpu $graphics | tee /root/gpu.log
178 $P /root/bin/touchpad.sh
179 $p chown andy:tty /dev/tty7
180 $p rm -f /usr/libexec/xf86-video-intel-backlight-helper
181 $p exec su -l andy -c /home/andy/bin/xsession &
183 xinit-stop_cmd=fuser -k /dev/tty7
186 utmp-start:VPservice -u: fsclean-start
187 for (i in /var/run/utmp /var/log/wtmp) {
188 $P eval 'echo -n > $i'
193 utmp-stop_cmd=halt -w
196 cpufreq-start:VPservice -u: mounts-start
197 $P cpupower frequency-set -g ondemand
201 localhost-start_cmd=ifconfig lo 127.0.0.1
202 localhost-stop_cmd=ifconfig lo down
205 hostname-start_cmd=hostname
208 power-start:VPservice -u: mounts-start
209 echo 1 | $P tee /sys/module/snd_hda_intel/parameters/power_save
210 echo min_power | $P tee /sys/class/scsi_host/*/link_power_management_policy
211 echo auto | $P tee /sys/bus/usb/devices/*/power/control
212 echo auto | $P tee /sys/bus/pci/devices/*/power/control
213 echo 1500 | $P tee /proc/sys/vm/dirty_writeback_centisecs
217 sysctl-start:VPservice -u: mounts-start
219 $P chmod a+w /sys/class/leds/smc::kbd_backlight/brightness
220 $P chmod a+w /sys/class/backlight/gmux_backlight/brightness
221 $P chmod a+w /sys/devices/platform/applesmc.768/fan[12]_manual
222 $P chmod a+w /sys/devices/platform/applesmc.768/fan[12]_output
228 at-start:VPservice -u: fsclean-start
231 at-stop_cmd=pkill atd
233 cron-start:VPservice -u: localhost-start fsclean-start
236 cron-stop_cmd=pkill cron
238 hddtemp-start_cmd=hddtemp -d
239 hddtemp-stop_cmd=pkill hddtemp
241 hwclock-start_cmd=hwclock --hctosys --utc
242 hwclock-stop_cmd=hwclock --systohc --utc
244 mdadm-start_cmd=mdadm --monitor --scan --daemonize
245 mdadm-stop_cmd=pkill mdadm
247 smartd-start_cmd=smartd
248 smartd-stop_cmd=pkill smartd
250 sshd-start_cmd=/usr/sbin/sshd
251 sshd-stop_cmd=pkill sshd
253 swap-start_cmd=swapon -a
254 swap-stop_cmd=swapoff -a
256 syslog-start:VPservice -u: mounts-start
259 syslog-stop_cmd=pkill syslog
264 alsa-start:VPservice -u: boot
265 $P modprobe snd-hda-intel
266 $P modprobe snd-usb-audio
270 alsa-stop_cmd=alsactl store
272 bluez-start:VPservice -u: dbus-start
276 $P exec /usr/libexec/bluetooth/bluetoothd &
278 bluez-stop_cmd=pkill bluetoothd
281 cups-stop_cmd=pkill cupsd
283 dbus-start:VPservice -u: fsclean-start localhost-start
284 $P install -m 1777 -d /var/run/dbus
285 $P /usr/bin/dbus-daemon --system
287 dbus-stop_cmd=pkill dbus-daemon
289 gpm-start_cmd=gpm -m /dev/input/mice -t ps2
290 gpm-stop_cmd=pkill gpm
292 gpsd-start_cmd=gpsd tcp://localhost:2222
293 gpsd-stop_cmd=pkill gpsd
295 keymap-start_cmd=loadkeys -u us-cc
297 polipo-start:VPservice -u: localhost-start
300 polipo-stop_cmd=pkill polipo
305 apache2-start:VPservice -u: fsclean-start
306 $P install -o apache -g apache -d /var/run/session
307 $P install -o apache -g apache -d /run/apache_ssl_mutex
308 $P apache2 $(apache2-opts)
310 apache2-stop_cmd=pkill apache2
312 bitlbee-start_cmd=bitlbee -D -u bitlbee
313 bitlbee-stop_cmd=pkill bitlbee
316 cups-stop_cmd=pkill cupsd
318 denyhosts-start_cmd=denyhosts.py --daemon
319 denyhosts-stop_cmd=pkill denyhosts.py
321 courier-start:VPservice -u: fsclean-start
322 $P install -o mail -g mail -d /var/run/courier
325 $P courierfilter start
326 $P courier-imapd-ssl start
328 courier-stop_cmd=pkill '(courier|authdaemon)'
330 dioc-start:VPservice -u: munged-start
332 $P mount -n /mnt/c/mnt/x
334 dioc-stop:EVPservice -d:
335 $P umount /mnt/c/mnt/x
339 diod-start:VPservice -u: munged-start
342 diod-stop_cmd=pkill diod
344 docker-start_cmd=docker
345 docker-stop_cmd=pkill docker
347 dovecot-start_cmd=dovecot
348 dovecot-stop_cmd=pkill dovecot
350 eth0-start_cmd=dhcpcd eth0 -4 -A
351 eth0-stop_cmd=dhcpcd eth0 -k
353 exim-start_cmd=exim -bd -q5m
354 exim-stop_cmd=pkill exim
356 fail2ban-start:VPservice -u: boot
357 $P mkdir -p /run/fail2ban
358 $P fail2ban-client start
360 fail2ban-stop_cmd=fail2ban-client stop
362 gitd-start_cmd=git daemon \
367 '--interpolated-path=/etc/git/%H%D' \
371 gitd-stop_cmd=pkill git-daemon
373 iptables-start:VPservice -u: boot
374 $P iptables-restore < /var/lib/iptables/rules-save
376 iptables-stop:EVPservice -d:
377 $P iptables-save > /var/lib/iptables/rules-save
380 jabberd-start_cmd=sudo -u jabber -g jabber jabberd-andy -b
381 jabberd-stop_cmd=pkill --uid jabber
383 mailman-start_cmd=sudo -u mailman -g mailman \
384 /usr/lib64/mailman/bin/mailmanctl -s start
385 mailman-stop_cmd=sudo -u mailman -g mailman \
386 /usr/lib64/mailman/bin/mailmanctl stop
388 minidlna-start:VPservice -u: mounts-start
389 $P install -o minidlna -g minidlna -d /var/run/minidlna
390 $P install -o minidlna -g minidlna -d /var/cache/minidlna
391 $P sudo -u minidlna -g minidlna minidlnad
393 minidlna-stop_cmd=pkill minidlnad
395 munged-start:VPservice -u: localhost-start mounts-start
396 $P install -o munge -g munge -d /var/run/munge
397 $P sudo -u munge -g munge munged
399 munged-stop_cmd=pkill munged
401 mysql-start:VPservice -u: fsclean-start
402 $P install -o mysql -g mysql -d /var/run/mysqld
405 mysql-stop_cmd=pkill mysqld
408 ntpd-stop_cmd=pkill ntpd
410 privoxy-start_cmd=privoxy --user privoxy.privoxy /etc/privoxy/config
411 privoxy-stop_cmd=pkill privoxy
413 rngd-start_cmd=rngd -b -s64 -W2048
414 rngd-stop_cmd=pkill rngd
416 sasl-start_cmd=saslauthd -n0 -ashadow
417 sasl-stop_cmd=pkill saslauthd
419 spamd-start_cmd=spamd -u spamd -d
420 spamd-stop_cmd=pkill spamd
422 tftpd-start_cmd=in.tftpd -s -l /img/boot
425 tor-start:VPservice -u: boot
428 tor-stop_cmd=pkill tor
430 unifi-start:VPservice -u: wpa-start
432 exec java -jar lib/ace.jar start &
433 unifi-stop:EVPservice -d:
435 java -jar lib/ace.jar stop
438 ventrilo-opts=-f/opt/ventrilo-server/ventrilo_srv -d
439 ventrilo-start_cmd=sudo -u ventrilo -g ventrilo /opt/ventrilo-server/ventrilo_srv
440 ventrilo-stop_cmd=pkill -u ventrilo
442 vpn-start:VPservice -u: localhost-start
444 $P exec /usr/sbin/rp-l2tpd &
445 $P exec /usr/sbin/pptpd &
447 vpn-stop:VQPservice -d: /
453 wlan0-start:VPservice -u: wpa-start
456 wlan0-stop_cmd=dhcpcd wlan0 -k
458 wpa-start:VPservice -u: $devnodes-start
459 $P modprobe brcmfmac && sleep 1
460 $P exec wpa_supplicant -Dnl80211 -iwlan0 -c/etc/wpa_supplicant.conf &
462 wpa-stop_cmd=pkill wpa
466 %-start:QVPservice -u: boot
467 if (~ $#($stem^-start_cmd) 0)
468 echo No such service $stem && exit 0
469 $P $($stem^-start_cmd) $($stem^-opts)
472 %-stop:QVPservice -d: /
473 if (~ $#($stem^-stop_cmd) 0)
474 echo No such service $stem
476 $P $($stem^-stop_cmd)
479 %-zap:QVPservice -d: /