]> Pileus Git - mkinit/blob - init.mk
mkinit
[mkinit] / init.mk
1 # Copyright (C) 2009 Andy Spencer
2 # See COPYING for terms
3
4 # Config
5 PATH=/lib/mkinit/bin:/bin:/sbin:/usr/bin:/usr/sbin
6 MKSHELL=/usr/lib/plan9/bin/rc
7 NPROC=10
8
9 # Example
10 #start-test:VQPservice -u: start-foo
11 #       echo starting test
12 #       service -U $target
13 #
14 #stop-test:VQPservice -d: /
15 #       echo stopping test
16 #       service -D $target
17
18 # Runlevels
19 # Make getty wait (for bootchart)
20 default:V: user
21
22 user:V:   system `{echo start-^(alsa keymap polipo spam)}
23 system:V: bare   `{echo start-^(at cron hddtemp hostname hwclock i8k sshd swap syslog)}
24 bare:V:          `{echo start-^(cpufreq fsclean getty localhost modules mounts uevents)}
25
26 # Initial setup/shutdown for mkinit
27 boot:QVEPservice -u: /
28         echo Starting init
29         $P mount -o remount,rw /
30         # mount proc here to make bootchart happier
31         $P mount -t proc proc /proc
32         rm -f /lib/mkinit/state/*
33         service -U $target
34
35 # Kill all process, then remount and sync
36 halt:QVE: stop-utmp stop-hwclock stop-alsa
37         echo Stopping init
38         rm -f /lib/mkinit/state/*
39         
40         echo TERMinating all processes
41         $P pkill -15 -vg0
42         for (i in 1 2 3 4 5)
43                 $P pgrep -vg0 >/dev/null && $P sleep 1
44         
45         echo KILLing all processes
46         $P pkill  -9 -vg0
47         for (i in 1 2 3)
48                 $P pgrep -vg0 >/dev/null && $P sleep 1
49         
50         $P mount -o remount,ro /
51         $P sync
52
53 # Proc, mtab, udev, fstab
54 start-mounts:QVPservice -u: boot
55         echo Starting mounts
56         $P cat /proc/mounts > /etc/mtab
57         $P udevd --daemon
58         $P mount -a 
59         service -U $target
60
61 # Load kernel modules
62 start-modules:QVEPservice -u: boot
63         echo Starting modules
64         $P modprobe uvesafb
65         service -U $target
66
67 # Trigger udev uevents
68 start-uevents:QVEPservice -u:  start-mounts
69         echo Starting uevents
70         $P udevadm trigger
71         $P udevadm settle '--timeout=10'
72         service -U $target
73
74 # Clean out /tmp and /var/run directories
75 start-fsclean:QVPservice -u: boot
76         echo Starting fsclean
77         $P rm -rf /tmp/* 
78         $P rm -rf /var/run/*
79         service -U $target
80
81 # Spawn gettys for tty[456]
82 start-getty:QVPservice -u: start-hostname start-utmp
83         echo Starting getty
84         $P respawn /sbin/agetty 38400 tty4 linux &
85         $P respawn /sbin/agetty 38400 tty5 linux &
86         $P respawn /sbin/agetty 38400 tty6 linux &
87         service -U $target
88
89 # Spawn qingys for tty[23]
90 start-qingy:QVPservice -u: start-hostname start-utmp start-modules start-uevents
91         echo Starting qingy
92         $P respawn /sbin/qingy tty2 &
93         $P respawn /sbin/qingy tty3 &
94         service -U $target
95
96 # Login records
97 start-utmp:QVPservice -u: start-fsclean
98         echo Starting utmp
99         for (i in /var/run/utmp /var/log/wtmp) {
100                 echo -n > $i
101                 chgrp utmp $i
102                 chmod 0664 $i
103         }
104         service -U $target
105 utmp_stop_cmd=halt -w
106
107 # CPU freq
108 start-cpufreq:QVPservice -u: start-uevents
109         echo Starting cpufreq
110         cpufreq-set -g ondemand
111         service -U $target
112
113 # Keymap (us-cc = us with ctrl-capslock switched)
114 keymap_start_cmd=loadkeys -u us-cc
115
116 # Localhost
117 localhost_start_cmd=ifconfig lo 127.0.0.1
118 localhost_stop_cmd=ifconfig lo down
119
120 # Set hostname
121 hostname_start_cmd=hostname b
122
123 # Kernel parameters
124 sysctl_start_cmd=sysctl -p
125
126
127 # Console
128 # -------
129 at_start_cmd=atd
130 cron_start_cmd=cron
131 hwclock_start_cmd=hwclock --hctosys --utc
132 hwclock_stop_cmd=hwclock --systohc --utc
133 swap_start_cmd=swapon -a
134 swap_stop_cmd=swapoff -a
135 start-syslog:QVPservice -u: start-mounts
136         echo Starting syslog;
137         $P syslog-ng
138         service -U $target
139 start-hddtemp:QVPservice -u: start-localhost
140         echo Starting hddtemp
141         $P hddtemp -d -l 127.0.0.1 /dev/sda
142         service -U $target
143 hddtemp_stop_cmd=pkill hddtemp
144
145
146 # Desktop
147 # -------
148 alsa_start_cmd=alsactl restore
149 alsa_stop_cmd=alsactl store
150 sshd_start_cmd=/usr/sbin/sshd
151 start-spam:QVPservice -u: start-localhost
152         echo Starting spam
153         $P spamd -d
154         service -U $target
155 start-polipo:QVPservice -u: start-localhost
156         echo Starting poliop
157         $P polipo
158         service -U $target
159 polipo_stop_cmd=pkill polipo
160
161
162 # Library 
163 # -------
164 start-%:QVPservice -u: boot
165         if (~ $#($stem^_start_cmd) 0)
166                 exit 0
167         echo Starting $stem
168         $P $($stem^_start_cmd)
169         service -U $target
170
171 stop-%:QVPservice -d: /
172         if (~ $#($stem^_stop_cmd) 0)
173                 exit 0
174         echo Stopping $stem
175         $P $($stem^_stop_cmd)
176         service -D $target
177
178 zap-%:QVPservice -d: /
179         service -D $target
180
181 status-%:QV:
182         service -q $target