rc.subr question

Dan Nelson dnelson at allantgroup.com
Fri Oct 27 20:42:40 UTC 2006


In the last episode (Oct 27), Volodymyr Kostyrko said:
> I'm writing a custom script to start a linux daemon with
> LinuxThreads.  The script starts daemon nicely, but on stopping it
> shows:
> 
> Stopping fmsadmin.
> kill: 19790: No such process
> 
> This happens because all processes are actually threads and
> signalling one process is as good as signalling them all. But with
> this error wait_for_pids doesn't work which results in:
> 
> yehat# /usr/local/etc/rc.d/fmsadmin restart
> Stopping fmsadmin.
> kill: 19790: No such process
> fmsadmin already running? (pid=19776 19777 19778 19779 19780 19781 19782 
> 19783 19784 19785 19786 19787 19788 19789 19791 19792 19793 19794 19795 
> 19796 19797 19926 19927).
> 
> What is the right way to describe such daemon in rc script? The daemon 
> doesn't create any pid files and killing one of active processes does 
> the thing.

The best way is to record fmsadmin's primary pid to a file, either by
having it write one, or recording it in the rc script using the $!
variable (you'll need to write a custom start_cmd action to do this). 
Then if you set fmsadmin_pidfile=/path/to/pidfile in rc.conf,
rc.d/fmsadmin will send its kill signal to the pid listed in that file,
and will wait for just that pid to exit.
 
-- 
	Dan Nelson
	dnelson at allantgroup.com


More information about the freebsd-questions mailing list