[Devel] all openser processes do not get killed

Ovidiu Sas sip.nslu at gmail.com
Fri May 4 01:14:51 CEST 2007


Hi Juha,


On openser stop, the attendant process will receive the  SIGTERM and
it will dispatch the signal to it's child.  The two hanging processes
are child of a child and are not visible to the dispatcher.

Compile openser in debug mode, attach to the child with strace (strace
-p PID) and stop openser.  Check if the SIGTERM  signal is propagated
down to the two child and processes and check how the signal is
handled (and combine this information with the output of the debug
log).  Maybe this will reveal why the two processes are still hanging.


Hope this helps,
Ovidiu Sas

On 5/3/07, Juha Heinanen <jh at tutpro.com> wrote:
> Ovidiu Sas writes:
>
>  > Use 'openserctl ps' to identify the processes by pid, stop openser and
>  > then check which process is hanging.
>
> the two remaining ones are:
>
> Process::  ID=0 PID=10478 Type=attendant
> Process::  ID=2 PID=10480 Type=receiver child=0 sock= 192.98.101.10:5090
>
> and the defunc ones are hanging from the latter:
>
> root     10478     1  0 22:25 ?        00:00:00 /usr/sbin/openser
> root     10480 10478  0 22:25 ?        00:00:00  \_ /usr/sbin/openser
> root     10481 10480  0 22:25 ?        00:00:00      \_ [openser] <defunct>
> root     10482 10480  0 22:25 ?        00:00:00      \_ [openser] <defunct>
>
> sometimes init script stop doesn't kill any of the processes, but pid
> file does get removed.
>
> as i said, init script works flawlessly for me if i disable presence.
>
> i know that i can play games with killall, etc., but i would rather like
> to solve this problem, since i don't have any other applications either
> where games are necessary (mysql, radius, etc.).
>
> -- juha
>



More information about the Devel mailing list