spampd is definitely not running: # /etc/init.d/spampd status * status: stopped # ps -ef | grep -i spam root 11721 30682 0 15:07 pts/1 00:00:00 grep --colour=auto -i spam ... so we'll start it: # /etc/init.d/spampd start * Starting spampd ... [ ok ] # ps -ef | grep -i spam mail 11788 1 2 15:07 ? 00:00:00 /usr/bin/perl -T /usr/sbin/spampd.pl --pid=/var/run/spampd.pid --host=localhost:8025 --relayhost=localhost:9025 --dose --set-envelope-headers --tagall mail 11792 11788 0 15:07 ? 00:00:00 /usr/bin/perl -T /usr/sbin/spampd.pl --pid=/var/run/spampd.pid --host=localhost:8025 --relayhost=localhost:9025 --dose --set-envelope-headers --tagall mail 11793 11788 0 15:07 ? 00:00:00 /usr/bin/perl -T /usr/sbin/spampd.pl --pid=/var/run/spampd.pid --host=localhost:8025 --relayhost=localhost:9025 --dose --set-envelope-headers --tagall mail 11794 11788 0 15:07 ? 00:00:00 /usr/bin/perl -T /usr/sbin/spampd.pl --pid=/var/run/spampd.pid --host=localhost:8025 --relayhost=localhost:9025 --dose --set-envelope-headers --tagall mail 11795 11788 0 15:07 ? 00:00:00 /usr/bin/perl -T /usr/sbin/spampd.pl --pid=/var/run/spampd.pid --host=localhost:8025 --relayhost=localhost:9025 --dose --set-envelope-headers --tagall mail 11796 11788 0 15:07 ? 00:00:00 /usr/bin/perl -T /usr/sbin/spampd.pl --pid=/var/run/spampd.pid --host=localhost:8025 --relayhost=localhost:9025 --dose --set-envelope-headers --tagall root 11804 30682 0 15:07 pts/1 00:00:00 grep --colour=auto -i spam ... and that looks good! However: # /etc/init.d/spampd status * status: crashed ... but regardless: # /etc/init.d/spampd stop * Stopping spampd ... [ ok ] # /etc/init.d/spampd status * status: stopped # ps -ef | grep -i spam root 11903 30682 0 15:08 pts/1 00:00:00 grep --colour=auto -i spam ... so spampd(.pl) is starting and stopping correctly, but OpenRC always thinks it's crashed (because it needs to be marked as --interpreted?) when it is in fact running correctly. Suggest new init script similar to: --- CUT --- command="/usr/sbin/spampd.pl" command_args="${SPAMPD_OPTS:-}" piddir="/var/run" pidfile="${piddir:-/var/run}/spampd.pid" required_dirs="${piddir:-/var/run}" depend() { use net } --- CUT --- ... which seems to be able to status-track correctly.
Bug title is now inaccurate - status is "crashed" instead of "stopped", so the states are "stopped" or "crashed", instead of "stopped", "started", or "crashed".
resolved ?