From c5ba2c5d06f3786b398df7c3e169c1beba2a1f68 Mon Sep 17 00:00:00 2001 From: Diego Santa Cruz Date: Thu, 10 Sep 2020 12:50:11 +0200 Subject: Add a simple init script Add a working init script as a base for distributions. Fixes #2 --- etc/llmnrd-init-script | 172 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 172 insertions(+) create mode 100755 etc/llmnrd-init-script diff --git a/etc/llmnrd-init-script b/etc/llmnrd-init-script new file mode 100755 index 0000000..82ecc4e --- /dev/null +++ b/etc/llmnrd-init-script @@ -0,0 +1,172 @@ +#!/bin/sh +# +# License: Copyright 2020 SpinetiX. This file is licensed +# under the terms of the GNU General Public License version 2. +# This program is licensed "as is" without any warranty of any +# kind, whether express or implied. +# +# Copyright 1999-2003 MontaVista Software, Inc. +# Copyright 2002, 2003, 2004 Sony Corporation +# Copyright 2002, 2003, 2004 Matsushita Electric Industrial Co., Ltd. +# +### BEGIN INIT INFO +# Required-Start: +# Required-Stop: +# Should-Start: +# Should-Stop: +# Default-Start: 2 3 5 +# Default-Stop: +# Short-Description: Starting/stopping llmnrd +# Description: Starting/stopping llmnrd +### END INIT INFO + +# Init script information +NAME=llmnrd +DESC="llmnrd" + +# Individual Daemon information +DAEMON=/usr/sbin/llmnrd +ARGS="-6 -d -s" +BASENAME=llmnrd + +# Load init script configuration +DISABLE_LLMNRD= +[ -f /etc/default/$NAME ] && . /etc/default/$NAME + +# Source the init script functions +. /etc/init.d/functions + +# Verify daemons are installed +if [ ! -x $DAEMON -a "$1" != "stop" ]; then + echo -n "Not starting $DESC $NAME, $DAEMON not installed" + echo + exit 0 +fi + +if [ -n "$DISABLE_LLMNRD" -a "$1" != "stop" ]; then + echo -n "Not starting $DESC $NAME, disabled via /etc/default/$NAME" + echo + exit 0 +fi + +start() { + local RET + + echo -n "Starting $DESC: " + + echo -n "$NAME " + + start-stop-daemon --start -u llmnrd -n llmnrd -p /run/llmnrd/pid -c llmnrd -x $DAEMON -- $ARGS + RET=$? + if [ $RET -eq 0 ]; then + success; echo + else + failure; echo + return 1 + fi + + return 0 +} + +stop () { + local RET + + echo -n "Stopping $DESC: $NAME " + start-stop-daemon --stop -u llmnrd -n llmnrd -p /run/llmnrd/pid -q + RET=$? + if [ $RET -eq 0 ]; then + success; echo + else + failure; echo + return 1 + fi + + return 0 +} + +restart() { + local RET + + echo "Restarting $DESC..." + stop + start + RET=$? + + return $RET +} + +condrestart() { + local RET + + pidofproc $BASENAME >/dev/null + RET=$? + if [ $RET -eq 0 ]; then + restart + RET=$? + else + RET=1 + fi + + return $RET +} + +reload() { + local RET pid + + # llmnrd has no support for HUP, so just restart + condrestart +} + +forcereload() { + local RET + + reload + RET=$? + if [ $RET -ne 0 ]; then + restart + RET=$? + fi + + return $RET +} + +parse() { + case "$1" in + start) + start + return $? + ;; + stop) + stop + return $? + ;; + restart) + restart + return $? + ;; + condrestart|try-restart) + condrestart + return $? + ;; + reload) + reload + return $? + ;; + force-reload) + forcereload + return $? + ;; + status) + status $BASENAME + return $? + ;; + *) + echo "Usage: $NAME " \ + "{start|stop|restart|condrestart|reload|force-reload|status}" >&2 + ;; + esac + + return 1 +} + +parse $@ -- cgit v1.2.3-54-g00ecf