Public bug reported: I have an Ubuntu LXC host with several containers running internet services via xinetd.
Sometimes the container services die without any reason and no logfile entry. First, I thought LXC is not that stable as I hoped, but now I found the bug inside /etc/init.d/xinetd ! The problem is: when I stop xinetd on the host with command "/etc/init.d/xinetd stop" this stops all LXC container xinetd processes, too! /etc/init.d/xinetd contains bad code which does not respect the xinetd pidfile. See "man start-stop-daemon": Note: unless --pidfile is specified, start-stop-daemon behaves similar to killall(1). start-stop-daemon will scan the process table looking for any processes which match the process name (...) The following patch prevents this unwanted behaviour and let the container's xinetd untouched: --- /tmp/xinetd 2011-10-05 18:08:13.000000000 +0200 +++ xinetd 2011-10-05 18:23:19.000000000 +0200 @@ -17,7 +17,7 @@ DAEMON=/usr/sbin/$NAME PIDFILE=/var/run/$NAME.pid -test -x "$DAEMON" || exit 0 +test -x $DAEMON || exit 0 test -e /etc/default/$NAME && . /etc/default/$NAME case "$INETD_COMPAT" in @@ -47,18 +47,20 @@ start) checkportmap log_daemon_msg "Starting internet superserver" "$NAME" - start-stop-daemon --start --quiet --background --exec "$DAEMON" -- \ - -pidfile "$PIDFILE" $XINETD_OPTS + start-stop-daemon --start --pidfile $PIDFILE --quiet --background \ + --exec $DAEMON -- -pidfile $PIDFILE $XINETD_OPTS log_end_msg $? ;; stop) log_daemon_msg "Stopping internet superserver" "$NAME" - start-stop-daemon --stop --signal 3 --quiet --oknodo --exec "$DAEMON" + start-stop-daemon --stop --pidfile $PIDFILE --signal 3 --quiet \ + --oknodo --exec $DAEMON log_end_msg $? ;; reload) log_daemon_msg "Reloading internet superserver configuration" "$NAME" - start-stop-daemon --stop --signal 1 --quiet --oknodo --exec "$DAEMON" + start-stop-daemon --stop --pidfile $PIDFILE --signal 1 --quiet \ + --oknodo --exec $DAEMON log_end_msg $? ;; restart|force-reload) @@ -66,7 +68,7 @@ $0 start ;; status) - status_of_proc -p "$PIDFILE" "$DAEMON" xinetd && exit 0 || exit $? + status_of_proc -p $PIDFILE $DAEMON xinetd && exit 0 || exit $? ;; *) echo "Usage: /etc/init.d/xinetd {start|stop|reload|force-reload|restart|status}" -- Ullrich Horlacher Server- und Arbeitsplatzsysteme Rechenzentrum E-Mail: horlac...@rus.uni-stuttgart.de Universitaet Stuttgart Tel: ++49-711-685-65868 Allmandring 30 Fax: ++49-711-682357 70550 Stuttgart (Germany) WWW: http://www.rus.uni-stuttgart.de/ ** Affects: xinetd (Ubuntu) Importance: Undecided Status: New -- You received this bug notification because you are a member of Ubuntu Server Team, which is subscribed to xinetd in Ubuntu. https://bugs.launchpad.net/bugs/868538 Title: /etc/init.d/xinetd kills LXC container's xinetd To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/xinetd/+bug/868538/+subscriptions -- Ubuntu-server-bugs mailing list Ubuntu-server-bugs@lists.ubuntu.com Modify settings or unsubscribe at: https://lists.ubuntu.com/mailman/listinfo/ubuntu-server-bugs