Date: Fri, 27 Oct 2006 15:42:37 -0500 From: Dan Nelson <dnelson@allantgroup.com> To: Volodymyr Kostyrko <arcade@synergetica.dn.ua> Cc: freebsd-questions@freebsd.org Subject: Re: rc.subr question Message-ID: <20061027204237.GD5213@dan.emsphone.com> In-Reply-To: <454259FB.4020009@synergetica.dn.ua> References: <454259FB.4020009@synergetica.dn.ua>
next in thread | previous in thread | raw e-mail | index | archive | help
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@allantgroup.com
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20061027204237.GD5213>