Swarm systemd service
From Wiki
Jump to navigationJump to search
Overview
After installing the files list below, enable the services to run at next boot with:
sudo systemctl enable swarmsrv sudo systemctl enable swarmchat
/lib/systemd/system/swarmsrv.service
[Unit] Description=Swarm communications server After=rc-local.service ConditionPathExists=!/home/swarm/swarmsrv/server.norun [Service] Type=simple User=swarm Group=swarm RootDirectory=/ WorkingDirectory=/home/swarm/swarmsrv EnvironmentFile=-/home/swarm/swarmsrv/server.opts EnvironmentFile=-/etc/rpimodel ExecStartPre=/bin/bash /home/swarm/swarmsrv/server_setup.sh ExecStart=/home/swarm/swarmsrv/server --nostdout $SERVER_OPTS [Install] WantedBy=multi-user.target
/etc/init.d/swarmsrv
#!/bin/sh
# Start/stop swarmsrv
#
### BEGIN INIT INFO
# Provides: swarmsrv
# Required-Start: $syslog $network +ntp
# Required-Stop: $null
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Swarm communications server daemon
# Description: Swarm communications server daemon
### END INIT INFO
PATH=/sbin:/bin:/usr/sbin:/usr/bin
. /lib/lsb/init-functions
SWARMSRV_DIR=/home/swarm/swarmsrv
SWARMSRV_PRE=${SWARMSRV_DIR}/server_setup.sh
SWARMSRV_EXE=${SWARMSRV_DIR}/server
SWARMSRV_LOG=/dev/null
SWARMSRV_PID=/var/run/swmarsrv.pid
start() {
status_of_proc swarmsrv >/dev/null
RETVAL=$?
if [ "$RETVAL" = "0" ] ; then
echo "swarmsrv is already started!"
else
if [ -r ${SWARMSRV_DIR}/${SWARMSRV_EXE}.opts ] ; then
. ${SWARMSRV_DIR}/${SWARMSRV_EXE}.opts
fi
if [ -x ${SWARMSRV_PRE} ] ; then
${SWARMSRV_PRE}
fi
log_daemon_msg "Starting Swarm server" "swarmsrv"
start-stop-daemon --exec ${SWARMSRV_EXE} --nostdout ${SERVER_OPTS} >${SWARMSRV_LOG} 2>&1 &
log_end_msg $?
fi
}
stop1() {
start-stop-daemon --quiet --stop --oknodo --exec ${SWARMSRV_EXE} --retry 5 --stop
}
case "$1" in
start)
start
;;
stop)
status_of_proc swarmsrv > /dev/null
RETVAL=$?
if [ "$RETVAL" != "0" ] ; then
echo "Swarm server not started!"
else
log_daemon_msg "Stopping Swarm server" "swarmsrv"
stop1
log_end_msg $?
fi
;;
restart)
$0 stop && sleep 2 && $0 start
;;
status)
status_of_proc swarmsrv "swarmsrv"
;;
*) log_action_msg "Usage: /etc/init.d/swarmsrv {start|stop|restart|status}"
exit 2
;;
esac
exit 0
/lib/systemd/system/swarmchat.service
[Unit] Description=Swarm text message server After=swarmsrv.service ConditionPathExists=!/home/swarm/chat/chat.norun [Service] Type=simple User=swarm Group=swarm RootDirectory=/ WorkingDirectory=/home/swarm/chat ExecStart=/usr/local/bin/node app.js [Install] WantedBy=multi-user.target
/etc/init.d/swarmchat
#!/bin/sh
# Start/stop swarmchat
#
### BEGIN INIT INFO
# Provides: swarmchat
# Required-Start: $syslog $network +ntp
# Required-Stop: $null
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Swarm communications server daemon
# Description: Swarm communications server daemon
### END INIT INFO
PATH=/sbin:/bin:/usr/sbin:/usr/bin
. /lib/lsb/init-functions
SWARMCHAT_EXE=/home/swarm/chat/node app.js
SWARMCHAT_LOG=/dev/null
SWARMCHAT_PID=/var/run/swmarchat.pid
start() {
status_of_proc swarmchat >/dev/null
RETVAL=$?
if [ "$RETVAL" = "0" ] ; then
echo "swarmchat is already started!"
else
log_daemon_msg "Starting Swarm chat server" "swarmchat"
start-stop-daemon --exec ${SWARMCHAT_EXE}> $SWARMCHAT_LOG 2>&1 &
log_end_msg $?
fi
}
stop1() {
start-stop-daemon --quiet --stop --oknodo --exec ${SWARMCHAT_EXE} --retry 5 --stop
}
case "$1" in
start)
start
;;
stop)
status_of_proc swarmchat > /dev/null
RETVAL=$?
if [ "$RETVAL" != "0" ] ; then
echo "Swarm server not started!"
else
log_daemon_msg "Stopping Swarm chat server" "swarmchat"
stop1
log_end_msg $?
fi
;;
restart)
$0 stop && sleep 2 && $0 start
;;
status)
status_of_proc swarmchat "swarmchat"
;;
*) log_action_msg "Usage: /etc/init.d/swarmchat {start|stop|restart|status}"
exit 2
;;
esac
exit 0