Mercurial > hg > rlgwebd
changeset 192:addc4e3456c4
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.
author | John "Elwin" Edwards |
---|---|
date | Fri, 01 Jan 2016 16:11:34 -0500 |
parents | 9758ca68e7f1 |
children | 80ca029f0906 |
files | Makefile rlgwebd.service |
diffstat | 2 files changed, 37 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- /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
--- /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