Package: dpkg Version: 1.10.22 Severity: normal File: /sbin/start-stop-daemon I have written xdm's maintainer and init scripts such that it can be configured to not kill the daemon on package upgrade. This works, except that if the xdm package has been upgraded since it was last started, start-stop-daemon reports failure to stop it by exiting with a nonzero status. Please see the following typescript (with control sequence garbage edited out). I added set -x to xdm's init script so it would be more clear what's going on. I'm also attaching xdm's init script so you can have a look at what it's doing. Script started on Mon Jun 28 23:00:28 2004 $TERM is "linux". Not using UTF-8 environment. sisyphus:~# ps -C xdm PID TTY TIME CMD 19004 ? 00:00:00 xdm 19007 ? 00:00:00 xdm sisyphus:~# cat /var/run/xdm.pid 19004 sisyphus:~# ls /var/run Xprint_servers dhclient.eth0.leases lpd.pid screen utmp apache2 dhclient.eth0.pid ntpd.pid sshd xdm.pid atd.pid exim4 pppconfig sshd.pid xfs.pid crond.pid inetd.pid ptal-mlcd syslogd.pid crond.reboot klogd.pid ptal-printd usb sisyphus:~# dpkg -i /home/branden/packages/xfree86/4.3.0-testing2/xdm_4.3.0.dfsg..1-5+SVN_powerpc.deb (Reading database ... 102528 files and directories currently installed.) Preparing to replace xdm 4.3.0.dfsg.1-5+SVN (using .../xdm_4.3.0.dfsg.1-5+SVN_powerpc.deb) ... Unpacking replacement xdm ... Setting up xdm (4.3.0.dfsg.1-5+SVN) ... System startup links for /etc/init.d/xdm already exist. sisyphus:~# ls /var/run Xprint_servers dhclient.eth0.leases lpd.pid screen utmp apache2 dhclient.eth0.pid ntpd.pid sshd xdm.pid atd.pid exim4 pppconfig sshd.pid xfs.pid crond.pid inetd.pid ptal-mlcd syslogd.pid crond.reboot klogd.pid ptal-printd usb sisyphus:~# ps -C xdm PID TTY TIME CMD 19004 ? 00:00:00 xdm 19007 ? 00:00:00 xdm sisyphus:~# cat /var/run/xdm.pid 19004 sisyphus:~# invoke-rc.d xdm stop + HEED_DEFAULT_DISPLAY_MANAGER=true + DEFAULT_DISPLAY_MANAGER_FILE=/etc/X11/default-display-manager + PATH=/bin:/usr/bin:/sbin:/usr/sbin + DAEMON=/usr/bin/X11/xdm + PIDFILE=/var/run/xdm.pid + UPGRADEFILE=/var/run/xdm.upgrade + test -x /usr/bin/X11/xdm + '[' -e /var/run/xdm.upgrade ']' + SSD_ARGS=--pidfile /var/run/xdm.pid --exec /usr/bin/X11/xdm + echo -n 'Stopping X display manager: xdm' Stopping X display manager: xdm+ '[' '!' -f /var/run/xdm.pid ']' ++ cat /var/run/xdm.pid ++ tr -d '[:blank:]' + DAEMONPID=19004 + KILLCOUNT=1 + '[' '!' -e /var/run/xdm.upgrade ']' + start-stop-daemon --stop --quiet --pidfile /var/run/xdm.pid --exec /usr/bin/X11/xdm + echo -n ' not running' not running+ '[' 1 -le 5 ']' + stillrunning ++ cat /proc/19004/cmdline + expr /usr/bin/X11/xdm : /usr/bin/X11/xdm + true + kill 19004 + sleep 1 + KILLCOUNT=2 + '[' 2 -le 5 ']' + stillrunning ++ cat /proc/19004/cmdline + expr '' : /usr/bin/X11/xdm + rm -f /var/run/xdm.pid /var/run/xdm.upgrade + false + break + stillrunning ++ cat /proc/19004/cmdline + expr '' : /usr/bin/X11/xdm + rm -f /var/run/xdm.pid /var/run/xdm.upgrade + false + rm -f /var/run/xdm.upgrade + echo . . + exit 0 sisyphus:~# invoke-rc.d xdm start + HEED_DEFAULT_DISPLAY_MANAGER=true + DEFAULT_DISPLAY_MANAGER_FILE=/etc/X11/default-display-manager + PATH=/bin:/usr/bin:/sbin:/usr/sbin + DAEMON=/usr/bin/X11/xdm + PIDFILE=/var/run/xdm.pid + UPGRADEFILE=/var/run/xdm.upgrade + test -x /usr/bin/X11/xdm + '[' -e /var/run/xdm.upgrade ']' + SSD_ARGS=--pidfile /var/run/xdm.pid --exec /usr/bin/X11/xdm + '[' -e /etc/X11/default-display-manager ']' + '[' true = true ']' ++ cat /etc/X11/default-display-manager + '[' /usr/bin/X11/xdm '!=' /usr/bin/X11/xdm ']' + echo -n 'Starting X display manager: xdm' Starting X display manager: xdm+ start-stop-daemon --start --quiet --pidfile /var/run/xdm.pid --exec /usr/bin/X11/xdm + echo . . + exit 0 sisyphus:~# invoke-rc.d xdm stop + HEED_DEFAULT_DISPLAY_MANAGER=true + DEFAULT_DISPLAY_MANAGER_FILE=/etc/X11/default-display-manager + PATH=/bin:/usr/bin:/sbin:/usr/sbin + DAEMON=/usr/bin/X11/xdm + PIDFILE=/var/run/xdm.pid + UPGRADEFILE=/var/run/xdm.upgrade + test -x /usr/bin/X11/xdm + '[' -e /var/run/xdm.upgrade ']' + SSD_ARGS=--pidfile /var/run/xdm.pid --exec /usr/bin/X11/xdm + echo -n 'Stopping X display manager: xdm' Stopping X display manager: xdm+ '[' '!' -f /var/run/xdm.pid ']' ++ cat /var/run/xdm.pid ++ tr -d '[:blank:]' + DAEMONPID=19155 + KILLCOUNT=1 + '[' '!' -e /var/run/xdm.upgrade ']' + start-stop-daemon --stop --quiet --pidfile /var/run/xdm.pid --exec /usr/bin/X11/xdm + sleep 1 + '[' 1 -le 5 ']' + stillrunning ++ cat /proc/19155/cmdline + expr '' : /usr/bin/X11/xdm + rm -f /var/run/xdm.pid /var/run/xdm.upgrade + false + break + stillrunning ++ cat /proc/19155/cmdline + expr '' : /usr/bin/X11/xdm + rm -f /var/run/xdm.pid /var/run/xdm.upgrade + false + rm -f /var/run/xdm.upgrade + echo . . + exit 0 sisyphus:~# Script done on Mon Jun 28 23:01:56 2004 -- System Information: Debian Release: testing/unstable APT prefers unstable APT policy: (500, 'unstable') Architecture: powerpc (ppc) Kernel: Linux 2.4.25-powerpc Locale: LANG=C, LC_CTYPE=C Versions of packages dpkg depends on: ii dselect 1.10.22 a user tool to manage Debian packa ii libc6 2.3.2.ds1-13 GNU C Library: Shared libraries an -- no debconf information
Attachment:
xdm
Description: application/shellscript