Update. I removed the --name argument, and I use following values:
NAME=script_name DAEMON=path_to_script/$NAME DAEMON_ARGS="--args" do_start() { # Return # 0 if daemon has been started # 1 if daemon was already running # 2 if daemon could not be started start-stop-daemon --start --quiet --background --make-pidfile --chuid=$DAEMONUSER --pidfile $PIDFILE --startas $DAEMON --test > /dev/null \ || return 1 start-stop-daemon --start --quiet --background --make-pidfile --chuid=$DAEMONUSER --pidfile $PIDFILE --startas $DAEMON -- \ $DAEMON_ARGS \ || return 2 [...] do_stop() { # Return # 0 if daemon has been stopped # 1 if daemon was already stopped # 2 if daemon could not be stopped # other if a failure occurred start-stop-daemon --stop --quiet --retry=INT/30/KILL/5 --pidfile $PIDFILE [...] Now, I get expected behaviour. That is, the script won't launch two instances of the application, and I have an explicit status message. Yet, the name of the executable is not checked, which means that if it dies somehow, and a new process gets its PID, the script will stop the new process. I suppose a nicer way would be to get s-s-d to write the name of the script itself ($NAME) in /proc/PID/stat, instead of the name of the interpreter ("python"). I couldn't achieve this. Am I misunderstanding something ? -- Jérôme -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org