Skip to content

Instantly share code, notes, and snippets.

@alobato
Created March 3, 2012 23:09
Show Gist options
  • Save alobato/1968852 to your computer and use it in GitHub Desktop.
Save alobato/1968852 to your computer and use it in GitHub Desktop.
start-stop-example
#!/bin/sh
# Quick start-stop-daemon example, derived from Debian /etc/init.d/ssh
set -e
# Must be a valid filename
NAME=foo
PIDFILE=/var/run/$NAME.pid
#This is the command to be run, give the full pathname
DAEMON=/usr/local/bin/bar
DAEMON_OPTS="--baz=quux"
export PATH="${PATH:+$PATH:}/usr/sbin:/sbin"
case "$1" in
start)
echo -n "Starting daemon: "$NAME
start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON -- $DAEMON_OPTS
echo "."
;;
stop)
echo -n "Stopping daemon: "$NAME
start-stop-daemon --stop --quiet --oknodo --pidfile $PIDFILE
echo "."
;;
restart)
echo -n "Restarting daemon: "$NAME
start-stop-daemon --stop --quiet --oknodo --retry 30 --pidfile $PIDFILE
start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON -- $DAEMON_OPTS
echo "."
;;
*)
echo "Usage: "$1" {start|stop|restart}"
exit 1
esac
exit 0
@Eberx
Copy link

Eberx commented Mar 6, 2018

@alobato
I guess add --make-pidfile like below
start-stop-daemon --start --quiet --make-pidfile --pidfile $PIDFILE --exec $DAEMON -- $DAEMON_OPTS

@nmvega
Copy link

nmvega commented Nov 28, 2018

I couldn't find a way to +1 @fvargasruiz comment, but he's correct so I'm quoting him here:

In the default option of "case" I think you have to use $0 instead of $1:
echo "Usage: "$0" {start|stop|restart}"

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment