-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Hi,
sorry for the delayed answer.
Steinar H. Gunderson schrieb:
> The only code path that _doesn't_ work is when there is a pid file but the
> web server does not run.
Ah, now I understand. My "|| true" proposal was wrong anyway, as Steve
and Stephen have pointed out.
The real issue is a stale .pid file (and the init.d script failing in
this case):
$ apt-get install thttpd
[...]
Updating rc.d symbolic links to start thttpd upon booting.
Starting thttpd ...
Now the pid file is written...
$ cat /var/run/thttpd.pid
23820
... but the daemon is not started:
$ ps waux | grep 23820 | grep -v grep
I suspect this is because thttpd wants to start on port 80, which is
already used by my local apache installation. The log file however is empty:
$ ls -l /var/log/thttpd.log
- -rw-r--r-- 1 root root 0 2006-08-28 20:25 /var/log/thttpd.log
Now stopping fails, and subsequently the prerm script
$ /etc/init.d/thttpd stop; echo $?
Stopping web server: /etc/init.d/thttpd: line 35: kill: (23820) - Kein
passender
Prozess gefunden
1
$ env LANG=C apt-get remove --purge thttpd
[...]
Removing thttpd ...
Stopping web server: /etc/init.d/thttpd: line 35: kill: (23820) - No
such proces
s
dpkg: error processing thttpd (--purge):
subprocess pre-removal script returned error exit status 1
Errors were encountered while processing:
thttpd
E: Sub-process /usr/bin/dpkg returned an error code (1)
> This could surely be improved (the start target
> can't handle it either), but it surely isn't RC.
I just installed thttpd, and then the removal failed, so I think the
serious severity is justified by that.
The init.d script should detect a stale thttpd.pid file, and just
remove it. Something like this should work:
FPID=/var/run/thttpd.pid
if [ -f $FPID ]; then
PID=`cat $FPID`
if ps | grep -q "^$PID"; then
kill -10 $PID
else
echo "Removing stale PID file $FPID"
fi
rm -f $FPID
fi
The other question is why a stale .pid file was written in the first
place. I expected in the log file to see something like "could not bind
to port 80" or similar. Perhaps it is worth to have a separate bug for that?
Regards,
Bastian
- --
,''`. Bastian Kleineidam
: :' : GnuPG Schlüssel
`. `' gpg --keyserver wwwkeys.pgp.net --recv-keys 32EC6F3E
`-
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.5 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
iD8DBQFE/adOeBwlBDLsbz4RAii6AKCZN+HxpiyTxYDQSRGkRuZ/mJfMowCff3mc
HMcSwZ0+Cj6yt4laaQYo/mA=
=A4sI
-----END PGP SIGNATURE-----