/etc/init.d/xinetd kills LXC container's xinetd
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
xinetd (Debian) |
Fix Released
|
Unknown
|
|||
xinetd (Ubuntu) |
Fix Released
|
Low
|
Unassigned |
Bug Description
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=
PIDFILE=
-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)
- 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
;;
stop)
- start-stop-daemon --stop --signal 3 --quiet --oknodo --exec "$DAEMON"
+ start-stop-daemon --stop --pidfile $PIDFILE --signal 3 --quiet \
+ --oknodo --exec $DAEMON
;;
reload)
- start-stop-daemon --stop --signal 1 --quiet --oknodo --exec "$DAEMON"
+ start-stop-daemon --stop --pidfile $PIDFILE --signal 1 --quiet \
+ --oknodo --exec $DAEMON
;;
restart|
@@ -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|
--
Ullrich Horlacher Server- und Arbeitsplatzsysteme
Rechenzentrum E-Mail: <email address hidden>
Universitaet Stuttgart Tel: ++49-711-685-65868
Allmandring 30 Fax: ++49-711-682357
70550 Stuttgart (Germany) WWW: http://
Related branches
Changed in xinetd (Ubuntu): | |
status: | New → Confirmed |
Changed in xinetd (Debian): | |
status: | Unknown → New |
Changed in xinetd (Ubuntu): | |
status: | Confirmed → Fix Committed |
Changed in xinetd (Ubuntu): | |
status: | Fix Committed → Fix Released |
Changed in xinetd (Debian): | |
status: | New → Fix Released |
no longer affects: | lxc |
Sorry, forgot to mention: this is on Ubuntu 10.04