Date: Fri, 23 Mar 2007 12:52:06 +0300 From: Mike Makonnen <mtm@FreeBSD.Org> To: Alexander Shikoff <minotaur@crete.org.ua> Cc: freebsd-rc@freebsd.org Subject: Re: rc.subr in 6.2 RELEASE Message-ID: <20070323095206.GA2749@rogue.navcom.lan> In-Reply-To: <20070227133824.GA49950@crete.org.ua> References: <20070227133824.GA49950@crete.org.ua>
next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, Feb 27, 2007 at 03:38:24PM +0200, Alexander Shikoff wrote:
> Hello,
>
> I guess my issue is more related to this mailing list rather than to
> SpamAssassin one.
>
> I use SpamAssassin built from ports tree on 6.2-RELEASE box.
> When debug is enabled via adding --debug flag to spamd_flags in rc.conf
> then rcNG script does not stop process:
>
> # /usr/local/etc/rc.d/sa-spamd stop
> spamd not running? (check /var/run/spamd/spamd.pid).
>
> But:
> # cat /var/run/spamd/spamd.pid
> 98080
> # ps axww|grep spamd
> 98080 ?? Ss 0:02,24 /usr/local/bin/perl5.8.8 -T -w /usr/local/bin/spamd --siteconfigpath=/usr/local/etc/mail/spamassassin -x -d -l --max-conn-per-child=128 --timeout-tcp=10 --timeout-child=300 --pidfile=/var/run/spamd/spamd.pid --syslog=local0 --username=spamd --groupname=spamd --allowed-ips=127.0.0.0/8 --listen-ip=127.0.0.1 --debug=received-header,bayes -d -r /var/run/spamd/spamd.pid
>
> If --debug flag is disabled then output of ps axww turned into:
> # ps axww|grep spamd
> 8483 ?? Ss 0:00,50 /usr/local/bin/spamd --siteconfigpath=/usr/local/etc/mail/spamassassin -x -d -l --max-conn-per-child=128 --timeout-tcp=10 --timeout-child=300 --pidfile=/var/run/spamd/spamd.pid --syslog=local0 --username=spamd --groupname=spamd --allowed-ips=127.0.0.0/8 --listen-ip=127.0.0.1 -d -r /var/run/spamd/spamd.pid (perl5.8.8)
>
> and rcNG script works perfectly.
>
> My question: is there a way to make rcNG script work in first case?
> Thanks.
I don't know if you solved the problem already, but here's why it doesn't work
when the debug flag is enabled:
Note the output of ps(1) in both cases:
without debug flag: /usr/local/bin/spamd ...
with debug flag : /usr/local/bin/perl5.8.8 -T -w /usr/local/bin/spamd ..
When debugging is enabled spamd is run as an interpreted program, which
means that _find_processes() in rc.subr(8) will not find it because it
is NOT looking for an interpreted program.
I would suggest enabling debuging with an rc.conf knob and then doing
something like the following in the rc script:
if checkyesno spamd_debug_enable; then
command_interpreter=/usr/local/bin/perl
spamd_flags="${spamd_flags} --debug"
fi
Cheers.
--
Mike Makonnen | GPG-KEY: http://people.freebsd.org/~mtm/mtm.asc
mmakonnen@gmail.com | AC7B 5672 2D11 F4D0 EBF8 5279 5359 2B82 7CD4 1F55
mtm@FreeBSD.Org | FreeBSD - Unleash the Daemon !
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20070323095206.GA2749>
