about summary refs log tree commit diff homepage
diff options
context:
space:
mode:
authorJune McEnroe <june@causal.agency>2018-10-20 16:04:29 -0400
committerJune McEnroe <june@causal.agency>2018-10-20 16:11:04 -0400
commit97b96ae311cb7d8784a25be586daaa4a14292f25 (patch)
tree2da9a5a30edb6e58037d0bc809e25c2f50312e17
parentOnly use pidfile(3) on FreeBSD (diff)
downloadtorus-97b96ae311cb7d8784a25be586daaa4a14292f25.tar.gz
torus-97b96ae311cb7d8784a25be586daaa4a14292f25.zip
Add rc.torus
-rw-r--r--Makefile7
-rw-r--r--rc.torus33
2 files changed, 38 insertions, 2 deletions
diff --git a/Makefile b/Makefile
index 3b3a08a..a4fedf8 100644
--- a/Makefile
+++ b/Makefile
@@ -33,13 +33,16 @@ chroot.tar: server client
 	    root/home \
 	    root/usr \
 	    root/usr/share \
-	    root/usr/share/misc
+	    root/usr/share/misc \
+		root/var \
+		root/var/run
 	install -d -o $(CHROOT_USER) -g $(CHROOT_GROUP) root/home/$(CHROOT_USER)
+	install -d -o $(CHROOT_USER) -g $(CHROOT_GROUP) root/var/run/torus
 	cp -a -f /usr/share/locale root/usr/share
 	cp -p -f /usr/share/misc/termcap.db root/usr/share/misc
 	cp -p -f /rescue/sh root/bin
 	install -o root -g wheel -m 555 server client root/bin
-	tar -c -f chroot.tar -C root bin home usr
+	tar -c -f chroot.tar -C root bin home usr var
 
 clean:
 	rm -f tags $(OBJS) $(BINS) chroot.tar
diff --git a/rc.torus b/rc.torus
new file mode 100644
index 0000000..660701f
--- /dev/null
+++ b/rc.torus
@@ -0,0 +1,33 @@
+#!/bin/sh
+
+# PROVIDE: torus
+# REQUIRE: LOGIN
+# KEYWORD: shutdown
+
+. /etc/rc.subr
+
+name=torus
+rcvar=torus_enable
+load_rc_config ${name}
+
+: ${torus_enable:=NO}
+: ${torus_user=torus}
+: ${torus_group=${torus_user}}
+: ${torus_user:+${torus_chroot=/home/${torus_user}}}
+: ${torus_user:+${torus_data_path=/home/${torus_user}/torus.dat}}
+: ${torus_user:+${torus_sock_path=/home/${torus_user}/torus.sock}}
+torus_flags="\
+	${torus_data_path:+-d ${torus_data_path}} \
+	${torus_sock_path:+-s ${torus_sock_path}} \
+	${torus_flags}"
+
+torus_run=/var/run/${name}
+torus_pid=${torus_run}/${name}.pid
+
+required_dirs=${torus_chroot}${torus_run}
+pidfile=${torus_chroot}${torus_pid}
+
+command=/bin/server
+command_args="-p ${torus_pid}"
+
+run_rc_command "$1"