Devuan bug report logs - #499
Smokeping service unable to stop/restart

version graph

Package: smokeping; Maintainer for smokeping is (unknown);

Reported by: ShadowM00n <>

Date: Mon, 27 Jul 2020 18:03:02 UTC

Severity: normal

Tags: debian

Found in version 2.7.3-2

Full log

Message #5 received at (full text, mbox, reply):

Received: (at submit) by; 27 Jul 2020 17:50:18 +0000
Return-Path: <>
Received: from []
	by with IMAP (fetchmail-6.4.0.beta4)
	for <debbugs@localhost> (single-drop); Mon, 27 Jul 2020 17:50:18 +0000 (UTC)
Received: from ( [])
	(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
	(No client certificate requested)
	by (Postfix) with ESMTPS id 5FA7EF608B8
	for <>; Mon, 27 Jul 2020 19:46:20 +0200 (CEST)
	dkim=pass (2048-bit key; unprotected) header.b="KIx6btfe";
Date: Mon, 27 Jul 2020 12:46:15 -0500
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;; s=mail;
	t=1595871979; bh=/l9h17mopLlsaou9ThJoHJf7d1uMRncnU/SqL+KEzck=;
From: ShadowM00n <>
Subject: Smokeping service unable to stop/restart
Message-ID: <20200727174615.GA4706@ascii>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
User-Agent: Mutt/1.10.1 (2018-07-13)
X-Spam-Status: No, score=-0.2 required=5.0 tests=DKIM_SIGNED,DKIM_VALID,
X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on
Package: smokeping
Version: 2.7.3-2

First-time submitter, so please excuse and correct me on any procedural 
errors on my part.

Basically, the current version of smokeping's init service quietly fails 
to stop smokeping, and then subsequently fails to restart it because the 
process is still running.

My understanding is that between ASCII and Beowulf the service was 
altered in an attempt to improve security. In ASCII, it checked only 
that a process with a saved PID existed; in Beowulf it also tries to 
compare the invocation string to the program string in the process list. 

While this seems a reasonable idea for most daemons, smokeping seems to 
be a bit of an exception -- it runs under an interpreter (perl), and as 
such the stored PID refers to the perl process launching it; naturally, 
the process string differs from the invocation, being e.g.
"/usr/bin/perl /usr/sbin/smokeping --config=/etc/smokeping/config" while 
being launched as "/usr/sbin/smokeping --config=/etc/smokeping/config".

Given this complication, my current personal setup, and my suggestion, 
is to instead check the owner of the process against the $DAEMON_USER 
when stopping, as this is configured to be a package-specific user 
called "smokeping":

< start-stop-daemon --oknodo --stop --retry 3 --quiet --pidfile $PIDFILE --exec $DAEMON --signal 15
> start-stop-daemon --oknodo --stop --retry 3 --quiet --pidfile $PIDFILE --user $DAEMON_USER --signal 15

This seems to work well for me, though I would certainly not be opposed 
to any other working method if this is less than ideal for some reason.

Send a report that this bug log contains spam.

Devuan BTS -- Powered by Debian bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson,
2005-2017 Don Armstrong, and many other contributors.

Devuan Bugs Owner <>.
Last modified: Sun Apr 11 18:53:27 2021;