From 4423252d4fd084cb35fb8c90d68e0615d34dfbe1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Veyret?= <sveyret@axway.com> Date: Fri, 15 Dec 2017 17:05:12 +0100 Subject: [PATCH] Add startup scripts --- release/extra/openrc/duniter.confd | 19 ++++++++++ release/extra/openrc/duniter.initd | 50 +++++++++++++++++++++++++++ release/extra/systemd/duniter.service | 22 ++++++++++++ 3 files changed, 91 insertions(+) create mode 100644 release/extra/openrc/duniter.confd create mode 100644 release/extra/openrc/duniter.initd create mode 100644 release/extra/systemd/duniter.service diff --git a/release/extra/openrc/duniter.confd b/release/extra/openrc/duniter.confd new file mode 100644 index 000000000..af0c9a3a8 --- /dev/null +++ b/release/extra/openrc/duniter.confd @@ -0,0 +1,19 @@ +# File containing crypto keys +#DUNITER_KEYS=/etc/duniter/keys.yml + +# Uncomment the following line to start the web GUI +#DUNITER_WEB=yes + +# Parameters for the web GUI +#DUNITER_WEB_HOST=localhost +#DUNITER_WEB_PORT=9220 + +# User and group of running process +#DUNITER_GROUP=duniter +#DUNITER_USER=duniter + +# Directory of duniter files +#DUNITER_HOME=/var/lib/duniter + +# Directory of duniter data +#DUNITER_DATA=duniter_default diff --git a/release/extra/openrc/duniter.initd b/release/extra/openrc/duniter.initd new file mode 100644 index 000000000..6ce4c3d19 --- /dev/null +++ b/release/extra/openrc/duniter.initd @@ -0,0 +1,50 @@ +#!/sbin/openrc-run + +: ${DUNITER_GROUP:=duniter} +: ${DUNITER_USER:=duniter} + +: ${DUNITER_HOME:=/var/lib/duniter} +: ${DUNITER_DATA:=duniter_default} + +command="/usr/bin/duniter" +if yesno "${DUNITER_WEB}"; then + command_args="webstart" + if [[ ! -z ${DUNITER_WEB_HOST} ]]; then + command_args="${command_args} --webmhost \"${DUNITER_WEB_HOST}\"" + fi + if [[ ! -z ${DUNITER_WEB_PORT} ]]; then + command_args="${command_args} --webmport \"${DUNITER_WEB_PORT}\"" + fi +else + command_args="start" +fi +if [[ ! -z ${DUNITER_KEYS} ]] && [[ -r ${DUNITER_KEYS} ]]; then + command_args="${command_args} --keyfile \"${DUNITER_KEYS}\"" +fi +command_args="${command_args} --home \"${DUNITER_HOME}\" --mdb \"${DUNITER_DATA}\" ${DUNITER_SSD_OPTIONS}" +start_stop_daemon_args="--user \"${DUNITER_USER}\":\"${DUNITER_GROUP}\"" +description="Duniter node" + +depend() { + need net +} + +status() { + if ${command} status --home "${DUNITER_HOME}" --mdb "${DUNITER_DATA}" | grep -q "is running"; then + einfo "status: started" + return 0 + else + if service_started; then + mark_service_stopped + eerror "status: crashed" + return 32 + else + einfo "status: stopped" + return 3 + fi + fi +} + +stop() { + ${command} stop --home "${DUNITER_HOME}" --mdb "${DUNITER_DATA}" +} diff --git a/release/extra/systemd/duniter.service b/release/extra/systemd/duniter.service new file mode 100644 index 000000000..51b819620 --- /dev/null +++ b/release/extra/systemd/duniter.service @@ -0,0 +1,22 @@ +[Unit] +Description=Duniter node +After=network.target + +[Service] +# Should be set to web in order to start with web GUI +Environment="DUNITER_WEB=" +Environment="DUNITER_HOME=/var/lib/duniter" +Environment="DUNITER_DATA=duniter_default" +# If using a key file, DUNITER_OPTS can be defined like so: +#Environment="DUNITER_OPTS=--keyfile /etc/duniter/keys.yml" +Environment="DUNITER_OPTS=" +Group=duniter +User=duniter +Type=forking +ExecStart=/usr/bin/duniter ${DUNITER_WEB}start --home ${DUNITER_HOME} --mdb ${DUNITER_DATA} $DUNITER_OPTS +ExecReload=/usr/bin/duniter ${DUNITER_WEB}restart --home ${DUNITER_HOME} --mdb ${DUNITER_DATA} $DUNITER_OPTS +ExecStop=/usr/bin/duniter stop --home ${DUNITER_HOME} --mdb ${DUNITER_DATA} +Restart=on-failure + +[Install] +WantedBy=multi-user.target -- GitLab