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>