[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#256790: dpkg: [S-S-D] start-stop-daemon fails to --stop



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


Reply to: