On Wed, 2014-09-24 at 17:35 +0200, Niels Peen wrote: > > On 24 Sep 2014, at 16:44, Nikos Mavrogiannopoulos <n.mavrogiannopoulos at gmail.com> wrote: > > > > Could you provide the log output of such cases? Unless killed with > > SIGKILL ocserv shouldn't have left children hanging. > > I use the TERM signal to kill the main ocserv process (using the pid file). > > Prior to restart: > > root 15305 0.0 0.3 53432 6484 ? Ss 05:24 0:02 /usr/local/sbin/ocserv -c /etc/ocserv/ocserv.conf > root 15306 0.0 0.1 48704 2144 ? S 05:24 0:00 /usr/local/sbin/ocserv -c /etc/ocserv/ocserv.conf > nobody 27889 0.0 0.0 48748 1592 ? S 21:40 0:03 /usr/local/sbin/ocserv -c /etc/ocserv/ocserv.conf > > After restart: > > [ ok ] Restarting ocserv: ocserv. > nobody 27889 0.0 0.0 48748 1592 ? S 21:40 0:03 /usr/local/sbin/ocserv -c /etc/ocserv/ocserv.conf > root 29495 0.0 0.0 48696 1372 ? Ss 23:25 0:00 /usr/local/sbin/ocserv -c /etc/ocserv/ocserv.conf > root 29497 0.0 0.0 48704 1404 ? S 23:25 0:00 /usr/local/sbin/ocserv -c /etc/ocserv/ocserv.conf There is a ps flag that prints the process name rather than argv so it would be more clear what type of ocserv process is that. > 27889 should?ve been killed but wasn?t. To kill it manually at this point I need to use SIGKILL - TERM won?t work. > The log doesn?t show the shutdown, only the (re)start: It is printed on debug level. I've modified it now to print it on info level, but you should see something like: "main: termination request received; waiting for children to die" Seeing it again there may be an issue in the way waitpid() is handled. That should fix it: http://git.infradead.org/ocserv.git/commitdiff/accdb24050a1de06c0408c9d783aa0575e35e831 regards, Nikos