aboutsummaryrefslogtreecommitdiff
path: root/etc/init.d/9vm
blob: 24d18042c23b96f5cc86d973e9333b9ff3031b9a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#!/sbin/openrc-run

name=9vm
description='Plan 9 virtual machine'

VMPATH=/9
SESSION=9vm
CMD=/9/startcon
PATTERN=qemu-system-i386

depend() {
	use net
}

start() {
	ebegin Starting Plan 9 virtual machine
	(cd $VMPATH && screen -h 1024 -dmS $SESSION $CMD)
	sleep 1
	if pgrep -f "$PATTERN" > /dev/null
	then
		eend 0
		return 0
	else
		eend 1
		return 1
	fi
}

stop() {
	if pgrep -f "$PATTERN" > /dev/null
	then
		screen -p 0 -S $SESSION -X eval 'stuff "fshalt"\015'
		sleep 10
# TODO: Check screen output to see when fshalt has finished.
#  TIP: C-a H activates logging to screenlog.1 (or 0,2,3,...?)
		screen -p 0 -S $SESSION -X eval 'stuff 2'
		screen -p 0 -S $SESSION -X eval 'stuff "quit"\015'
	fi
	einfo Plan 9 virtual machine is shut down.
	eend 0
}