diff --git a/Makefile b/Makefile index 4415a356..944ffcbf 100644 --- a/Makefile +++ b/Makefile @@ -17,7 +17,7 @@ WWWGROUP=www-data CIGRIUSER=cigri CIGRIGROUP=cigri APIBASE=/cigri-api -PIDDIR=/var/run/cigri +PIDDIR=/run/cigri USERCMDS=$(patsubst bin/%.rb,%,$(wildcard bin/*.rb)) CACERT=/etc/cigri/ssl.orig/cigriCA/certs/cigriCA.crt CAKEY=/etc/cigri/ssl.orig/cigriCA/private/myca.key @@ -53,7 +53,7 @@ setup: setup-api install-cigri: install-cigri-server install-cigri-user -install-cigri-server: check-old install-cigri-libs install-cigri-modules install-cigri-launcher install-cigri-api install-cigri-server-config install-cigri-server-tools +install-cigri-server: check-old install-cigri-libs install-cigri-modules install-cigri-systemd install-cigri-api install-cigri-server-config install-cigri-server-tools install-cigri-user: check-old install-cigri-libs install-cigri-user-cmds install-cigri-user-config install-cigri-server-config @@ -98,12 +98,13 @@ install-cigri-user-config: perl -pi -e "s#%%CIGRIDIR%%#$(CIGRIDIR)#g;;\ s#%%APIBASE%%#$(APIBASE)#g" $(DESTDIR)$(CIGRICONFDIR)/api-clients.conf; fi -install-cigri-launcher: +install-cigri-systemd: install -d -m 0755 $(DESTDIR)$(PIDDIR) install -d -m 0755 $(DESTDIR)$(CIGRIDIR) - install -m 0755 sbin/cigri_start.in $(DESTDIR)/etc/init.d/cigri + install -m 0755 etc/systemd/system/cigri.service.in $(DESTDIR)/etc/systemd/system/cigri.service perl -pi -e "s#%%CIGRIDIR%%#$(CIGRIDIR)#g;;\ - s#%%CIGRIUSER%%#$(CIGRIUSER)#g" $(DESTDIR)/etc/init.d/cigri + s#%%CIGRIUSER%%#$(CIGRIUSER)#g;;\ + s#%%PIDDIR%%#$(PIDDIR)#g" $(DESTDIR)/etc/systemd/system/cigri.service touch $(DESTDIR)$(LOGDIR)/cigri.log chmod 600 $(DESTDIR)$(LOGDIR)/cigri.log chown $(CIGRIUSER) $(DESTDIR)$(LOGDIR)/cigri.log diff --git a/etc/systemd/system/cigri.service b/etc/systemd/system/cigri.service index 33f5f5ef..8f08134a 100644 --- a/etc/systemd/system/cigri.service +++ b/etc/systemd/system/cigri.service @@ -6,10 +6,9 @@ After=postgresql.service PermissionsStartOnly=true ExecStartPre=/usr/bin/install -o cigri -d /var/run/cigri ExecStart=/usr/local/share/cigri/modules/almighty.rb -PIDFile=/var/run/cigri/almighty.pid +PIDFile=/run/cigri/almighty.pid User=cigri WorkingDirectory=/var/lib/cigri -RuntimeDirectory=/var/run/cigri [Install] WantedBy=default.target diff --git a/etc/systemd/system/cigri.service.in b/etc/systemd/system/cigri.service.in new file mode 100644 index 00000000..fb499cb1 --- /dev/null +++ b/etc/systemd/system/cigri.service.in @@ -0,0 +1,13 @@ +[Unit] +Description=CiGri computing grid server +After=postgresql.service + +[Service] +PermissionsStartOnly=true +ExecStart=%%CIGRIDIR%%/modules/almighty.rb +PIDFile=%%PIDDIR%%/almighty.pid +User=%%CIGRIUSER%% +WorkingDirectory=/var/lib/cigri + +[Install] +WantedBy=default.target diff --git a/sbin/cigri_start.in b/sbin/cigri_start.in deleted file mode 100755 index 2cf1549a..00000000 --- a/sbin/cigri_start.in +++ /dev/null @@ -1,66 +0,0 @@ -#! /bin/sh -e - -DAEMON="%%CIGRIDIR%%/modules/almighty.rb" #ligne de commande du programme -DEAMON_OPT="" #argument à utiliser par le programme -DAEMONUSER="cigri" #utilisateur du programme -DEAMON_NAME="almighty.rb" #Nom du programme (doit être identique à l'exécutable) -LAUNCH_DIR="/var/lib/cigri" - -# chkconfig: 2345 99 01 -# description: Cigri server -# -### BEGIN INIT INFO -# Provides: cigri-server -# Required-Start: $all -# Required-Stop: $all -# Default-Start: 2 3 4 5 -# Default-Stop: 0 1 6 -# Short-Description: Cigri grid server -### END INIT INFO - - -test -x $DAEMON || exit 5 - -. /lib/lsb/init-functions - -d_start () { - log_daemon_msg "Starting system $DEAMON_NAME Daemon" - start-stop-daemon --pidfile /var/run/cigri/almighty.pid --background --chdir $LAUNCH_DIR --name $DEAMON_NAME --start --quiet --user $DAEMONUSER --chuid $DAEMONUSER --exec $DAEMON -- $DEAMON_OPT - log_end_msg $? -} - -d_stop () { - log_daemon_msg "Stopping system $DEAMON_NAME Daemon" - start-stop-daemon --pidfile /var/run/cigri/almighty.pid --name $DEAMON_NAME --stop --retry 5 --quiet --name $DEAMON_NAME - log_end_msg $? -} - -case "$1" in - start|stop) - d_${1} - ;; - - restart|reload|force-reload) - d_stop - d_start - ;; - - force-stop) - d_stop ||true - killall -q $DEAMON_NAME || true - sleep 2 - ps awux |grep "cigri: "|grep -v grep|awk '{print "kill " $2}'|bash ||true - sleep 2 - killall -q -9 $DEAMON_NAME || true - ps awux |grep "cigri: "|grep -v grep|awk '{print "kill -9 " $2}'|bash ||true - ;; - - status) - status_of_proc "$DEAMON_NAME" "$DAEMON" "system-wide $DEAMON_NAME" && exit 0 || exit $? - ;; - *) - echo "Usage: /etc/init.d/$0 {start|stop|force-stop|restart|reload|force-reload|status}" - exit 1 - ;; -esac -exit 0