# HG changeset patch # User John "Elwin" Edwards # Date 1451682694 18000 # Node ID addc4e3456c4cc3c5b6b3422f5440a816844a918 # Parent 9758ca68e7f1a5491ae9d162c86c7742700d3dcd Begin adding systemd compatibility. The Makefile can be used to build and install rlgwebd. On systems with systemd, the unit file controls starting and stopping the service, and the shell script is not needed. The unit file uses KillMode=none because socat does not actually stop rlgwebd, it only asks it to stop and exits without waiting for a response. Until a better stopping method is introduced, this setting prevents systemd from killing all the rlgwebd processes as soon as socat exits. diff -r 9758ca68e7f1 -r addc4e3456c4 Makefile --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Makefile Fri Jan 01 16:11:34 2016 -0500 @@ -0,0 +1,24 @@ +CHROOT=/var/dgl + +WEBASSETS = about.html bell.svg index.html options.html options.js rlgterm.js \ + style-rlg.css termemu.js termemu-keys.js tty.css + +all: sqlickrypt dglwatcher + +sqlickrypt: sqlickrypt.c + cc -o sqlickrypt sqlickrypt.c -lcrypt -lsqlite3 + +dglwatcher: dglwatcher.c + cc -o dglwatcher dglwatcher.c + +clean: + rm -f sqlickrypt dglwatcher + +install: all + mkdir -p ${CHROOT}/bin + cp sqlickrypt dglwatcher ${CHROOT}/bin + for LIB in `ldd ./sqlickrypt | awk '$$1 ~ "^/" {print $$1}; $$3 ~ "^/" {print $$3}'`; do mkdir -p ${CHROOT}`dirname $$LIB`; cp $$LIB ${CHROOT}$$LIB; done + cp rlgwebd.js /usr/local/bin/rlgwebd.js + mkdir -p /var/local/rlgwebd + cp ${WEBASSETS} ${CHROOT}/var/www + cp rlgwebd.service /usr/lib/systemd/system diff -r 9758ca68e7f1 -r addc4e3456c4 rlgwebd.service --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/rlgwebd.service Fri Jan 01 16:11:34 2016 -0500 @@ -0,0 +1,13 @@ +[Unit] +Description=RLGWebD app daemon +After=network.target syslog.target + +[Service] +Type=simple +Environment=NODE_PATH=/usr/lib/node_modules +ExecStart=/usr/bin/node /usr/local/bin/rlgwebd.js +ExecStop=/usr/bin/socat "EXEC:echo quit" /var/local/rlgwebd/ctl +KillMode=none + +[Install] +WantedBy=multi-user.target