On 09-Feb-16, Olaf Dabrunz wrote:
> On 09-Feb-16, Olaf Dabrunz wrote:
> > Ah right, you already use this in 7.4.1274.
> > 
> > To correct myself: kill the negative of the PID of the session leader,
> > this sends the signal to all processes in its process group (!), see
> > kill(2):
> > 
> > mch_stop_job():
> > 
> >         sig = atoi((char *)how);
> >       else
> >         return FAIL;
> > -     kill(job->jv_pid, sig);
> > +     kill(-job->jv_pid, sig);
> >       return OK;
> >   }
> >   #endif
> > 
> > 
> > This also triggers a sort of chain reaction that should bring down the
> > other process groups in the session (if any), unless they ignore SIGHUP:
> > 
> >     When the session leader exits, all processes in the foreground
> >     process receive a SIGHUP.
> > 
> >     When the parent (typically the session leader) of a background
> >     process group with at least one stopped process exits, all processes
> >     in that background process group receive a SIGHUP.  (And a SIGCONT,
> >     which makes them continue running in the background in case they
> >     ignore SIGHUP.)
> 
> Processes that are not terminated by this chain reaction are
>     - in a background process group where all processes are running
>       (long running compute jobs)
>         $ break_encryption &

The python process started from the shell in your example must have been
in its own process group and only blocked on reading from a socket, but
not stopped by a signal.

So you essentially started it as a long running compute job, which is
unaffected by session termination.

Gary's suggestion to use

    /bin/sh -c "exec python demoserver.py <here >there"

should fix this, by replacing the session leader shell with the python
process executing demoserver.py, so it is not in a separate process
group and affected directly by either kill(job->jv_pid, sig) or
kill(-job->jv_pid, sig).

>     - background processes that choose to survive session termination,
>       even when temporarily stopped
>         $ nohup break_encryption &
>         $ kill -STOP %1             # give me some processing power now
> 
> Daemons detach even further, by leaving the session.
> 
> > See more details in
> >     - http://www.win.tue.nl/~aeb/linux/lk/lk-10.html#ss10.3
> >     - man 2 setpgid
> 
> 
> -- 
> Olaf Dabrunz (oda <at> fctrace.org)
> 
> -- 
> -- 
> You received this message from the "vim_dev" maillist.
> Do not top-post! Type your reply below the text you are replying to.
> For more information, visit http://www.vim.org/maillist.php
> 
> --- 
> You received this message because you are subscribed to the Google Groups 
> "vim_dev" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to vim_dev+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.

-- 
Olaf Dabrunz (oda <at> fctrace.org)

-- 
-- 
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

--- 
You received this message because you are subscribed to the Google Groups 
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to vim_dev+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Raspunde prin e-mail lui