Package: lsb-base Version: 4.1+Debian0 Severity: normal Hi.
I noticed that "/etc/init.d/hddtemp status" wasn't returning the correct status when the daemon was running. hddtemp daemon doesn't create a pidfile when started, so I tracked the problem back to the pidofproc function from /lib/lsb/init-functions. Basically I put the section with "if [ -x /bin/pidof ] && [ ! "$specified" ]; then" before the section with "base=${1##*/}". Now the function is corectly detecting the pids and "/etc/init.d/hddtemp status" gives the right information. Please check the attached patch. I also tested the other daemons on my system, both with pidfiles and without and all seem to work fine. -- System Information: Debian Release: wheezy/sid APT prefers testing APT policy: (500, 'testing') Architecture: i386 (i686) Kernel: Linux 3.2.0-2-686-pae (SMP w/2 CPU cores) Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash -- no debconf information -- debsums errors found: debsums: changed file /lib/lsb/init-functions (from lsb-base package)
--- /lib/lsb/init-functions 2012-04-16 04:22:23.000000000 +0300 +++ /home/adrian/init-functions 2012-03-26 12:13:49.000000000 +0300 @@ -76,19 +76,11 @@ done shift $(($OPTIND - 1)) - if [ -x /bin/pidof ] && [ ! "$specified" ]; then - status="0" - /bin/pidof -o %PPID -x $1 || status="$?" - if [ "$status" = 1 ]; then - return 3 # program is not running - fi - return 0 - fi - base=${1##*/} if [ ! "$specified" ]; then pidfile="/var/run/$base.pid" fi + if [ -n "${pidfile:-}" ]; then if [ -e "$pidfile" ]; then if [ -r "$pidfile" ]; then @@ -111,6 +103,14 @@ return 3 # pid file doesn't exist, program probably stopped fi fi + if [ -x /bin/pidof ] && [ ! "$specified" ]; then + status="0" + /bin/pidof -o %PPID -x $1 || status="$?" + if [ "$status" = 1 ]; then + return 3 # program is not running + fi + return 0 + fi if [ "$specified" ]; then return 3 # almost certain it's not running fi