Bug#664621: status option returns with exit code 4 and 'could not access PID file for [...]'

Michael Prokop <[email protected]>
Newsgroups gmane.linux.debian.devel.lsb
Message-ID <20120319124924.8298.96569.reportbug__28581.4479263083$1332161486$gmane$org@grmlvrs>
Package: lsb-base
Version: 3.2+Debian31
Severity: important


If you're stopping e.g. rsyslog and then run:

| /etc/init.d/rsyslog status

you'll get:

| could not access PID file for rsyslog ... failed!

with exit code *4* (same applies to other services like cron,
acpid,...). This is a bit confusing because according to LSB we
have:

| If the status action is requested, the init script will return the
| following exit status codes.
| [...]
| 3   program is not running
| 4   program or service status is unknown

  -- http://refspecs.linuxbase.org/LSB_3.1.0/LSB-Core-generic/LSB-Core-generic/iniscrptact.html

I'd expect to get exit code 3 and a less misleading error message
as the init script/program should be aware of its own state in such
a situation.

I noticed this behaviour also with rsyslog + lsb-base version
3.2-23.2squeeze1 in squeeze (actually R.I.Pienaar noticed it and I
offered to take a look at it). I then stumbled upon
http://bugs.debian.org/545896 ("status_of_proc broken by pidofproc
change") which says that should be fixed.

But I finally found a new origin of that bug: it seems it was
re-introduced in lsb-base 3.2+Debian31:

While up to lsb-base 3.2+Debian30 it seems works as expected:

| # /etc/init.d/rsyslog status
| rsyslogd is not running ... failed!

... with lsb-base 3.2+Debian31 it once again fails as noted above:

| # /etc/init.d/rsyslog status
| could not access PID file for rsyslogd ... failed!

I'm tempted to call this an RC bug, but leaving that decision to the
package maintainer(s).

regards,
-mika-
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.