Bug#730653: gdm3: GDM3 doesn't close child processes on exit
Angelescu Ovidiu
mrhsaacdoh at gmail.com
Wed Nov 27 19:21:44 UTC 2013
Package: gdm3
Version: 3.8.4-6
Severity: important
Dear Maintainer,
After entering graphic mode in runlevel 5 using gdm3 login if you run init 3 from a console
xorg isn't killed and also a gdm3 library.
Those continue to work in memory.
If you try to run init 5 from runlevel 3 a scrambled screen it's showned.
I expect in runlevel 3 all gdm3 child processes to be killed.
If you run init 1 gdm3 child processes are killed.
-- System Information:
Debian Release: jessie/sid
APT prefers unstable
APT policy: (500, 'unstable')
Architecture: amd64 (x86_64)
Kernel: Linux 3.12-1.towo-siduction-amd64 (SMP w/1 CPU core; PREEMPT)
Locale: LANG=en_US.utf8, LC_CTYPE=en_US.utf8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Versions of packages gdm3 depends on:
ii accountsservice 0.6.34-2
ii adduser 3.113+nmu3
ii dconf-cli 0.18.0-1
ii dconf-gsettings-backend 0.18.0-1
ii debconf [debconf-2.0] 1.5.52
ii gir1.2-gdm3 3.8.4-6
ii gnome-session [x-session-manager] 3.8.4-3
ii gnome-session-bin 3.8.4-3
ii gnome-settings-daemon 3.8.5-2
ii gnome-shell 3.8.4-5
ii gnome-terminal [x-terminal-emulator] 3.10.1-1
ii gsettings-desktop-schemas 3.8.2-2
ii libaccountsservice0 0.6.34-2
ii libatk1.0-0 2.10.0-2
ii libaudit1 1:2.3.2-2
ii libc6 2.17-96
ii libcairo-gobject2 1.12.16-2
ii libcairo2 1.12.16-2
ii libcanberra-gtk3-0 0.30-2
ii libcanberra0 0.30-2
ii libgdk-pixbuf2.0-0 2.28.2-1
ii libgdm1 3.8.4-6
ii libglib2.0-0 2.37.5+really2.36.4-0r0
ii libglib2.0-bin 2.37.5+really2.36.4-0r0
ii libgtk-3-0 3.8.6-1
ii libpam-modules 1.1.3-10
ii libpam-runtime 1.1.3-10
ii libpam-systemd 204-5
ii libpam0g 1.1.3-10
ii libpango-1.0-0 1.36.0-1
ii libpangocairo-1.0-0 1.36.0-1
ii librsvg2-common 2.40.0-1
ii libselinux1 2.2.1-1
ii libwrap0 7.6.q-24
ii libx11-6 2:1.6.2-1
ii libxau6 1:1.0.8-1
ii libxdmcp6 1:1.1.1-1
ii libxrandr2 2:1.4.1-1
ii lsb-base 4.1+Debian12
ii metacity [x-window-manager] 1:2.34.13-1
ii upower 0.9.23-2+b1
ii x11-common 1:7.7+4
ii x11-xserver-utils 7.7+1
Versions of packages gdm3 recommends:
ii at-spi2-core 2.10.1-1
pn desktop-base <none>
ii gnome-icon-theme 3.10.0-1
ii gnome-icon-theme-symbolic 3.10.1-1
ii x11-xkb-utils 7.7~1
pn xserver-xephyr <none>
ii xserver-xorg 1:7.7+4
ii zenity 3.8.0-1
Versions of packages gdm3 suggests:
pn gnome-orca <none>
pn libpam-gnome-keyring <none>
-- Configuration Files:
/etc/gdm3/Init/Default changed:
PATH="/usr/bin:$PATH"
OLD_IFS=$IFS
gdmwhich () {
COMMAND="$1"
OUTPUT=
IFS=:
for dir in $PATH
do
if test -x "$dir/$COMMAND" ; then
if test "x$OUTPUT" = "x" ; then
OUTPUT="$dir/$COMMAND"
fi
fi
done
IFS=$OLD_IFS
echo "$OUTPUT"
}
sysresources=/etc/X11/Xresources
if [ -f "$sysresources" ]; then
xrdb -merge "$sysresources"
fi
sysmodmap=/etc/X11/Xmodmap
XMODMAP=`gdmwhich xmodmap`
if [ "x$XMODMAP" != "x" ] ; then
if [ "x$GDM_PARENT_DISPLAY" = "x" ]; then
if [ -f $sysmodmap ]; then
$XMODMAP $sysmodmap
fi
else
( DISPLAY=$GDM_PARENT_DISPLAY XAUTHORITY=$GDM_PARENT_XAUTHORITY $XMODMAP -pke ) | $XMODMAP -
fi
#
# Switch Sun's Alt and Meta mod mappings
#
UNAME=`gdmwhich uname`
PROCESSOR=`$UNAME -p`
if [ "x$PROCESSOR" = "xsparc" ]; then
if $XMODMAP | grep mod4 | grep Alt > /dev/null 2>/dev/null
then
$XMODMAP -e "clear Mod1" \
-e "clear Mod4" \
-e "add Mod1 = Alt_L" \
-e "add Mod1 = Alt_R" \
-e "add Mod4 = Meta_L" \
-e "add Mod4 = Meta_R"
fi
fi
fi
SETXKBMAP=`gdmwhich setxkbmap`
if [ "x$SETXKBMAP" != "x" ] ; then
# FIXME: is this all right? Is this completely on crack?
# What this does is move the xkb configuration from the GDM_PARENT_DISPLAY
# FIXME: This should be done in code. Or there must be an easier way ...
if [ -n "$GDM_PARENT_DISPLAY" ]; then
XKBSETUP=`( DISPLAY=$GDM_PARENT_DISPLAY XAUTHORITY=$GDM_PARENT_XAUTHORITY $SETXKBMAP -v )`
if [ -n "$XKBSETUP" ]; then
XKBKEYMAP=`echo "$XKBSETUP" | grep '^keymap' | awk '{ print $2 }'`
XKBTYPES=`echo "$XKBSETUP" | grep '^types' | awk '{ print $2 }'`
XKBCOMPAT=`echo "$XKBSETUP" | grep '^compat' | awk '{ print $2 }'`
XKBSYMBOLS=`echo "$XKBSETUP" | grep '^symbols' | awk '{ print $2 }'`
XKBGEOMETRY=`echo "$XKBSETUP" | grep '^geometry' | awk '{ print $2 }'`
if [ -n "$XKBKEYMAP" ]; then
$SETXKBMAP -keymap "$XKBKEYMAP"
elif [ -n "$XKBTYPES" -a -n "$XKBCOMPAT" -a -n "$XKBSYMBOLS" -a -n "$XKBGEOMETRY" ]; then
$SETXKBMAP -types "$XKBTYPES" -compat "$XKBCOMPAT" -symbols "$XKBSYMBOLS" -geometry "$XKBGEOMETRY"
elif [ -n "$XKBTYPES" -a -n "$XKBCOMPAT" -a -n "$XKBSYMBOLS" ]; then
$SETXKBMAP -types "$XKBTYPES" -compat "$XKBCOMPAT" -symbols "$XKBSYMBOLS"
elif [ -n "$XKBSYMBOLS" ]; then
$SETXKBMAP -symbols "$XKBSYMBOLS"
fi
fi
fi
fi
/usr/share/siduction-dynamic-dms/detect-resolution
/etc/gdm3/daemon.conf changed:
[daemon]
AutomaticLogin=siducer
AutomaticLoginEnable=true
TimedLoginEnable=true
TimedLogin=siducer
TimedLoginDelay=1
[security]
[xdmcp]
[greeter]
[chooser]
[debug]
/etc/init.d/gdm3 changed:
set -e
PATH=/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/usr/sbin/gdm3
test -x $DAEMON || exit 0
if [ -r /etc/default/locale ]; then
. /etc/default/locale
export LANG LANGUAGE
fi
.. /lib/lsb/init-functions
HEED_DEFAULT_DISPLAY_MANAGER=true
DEFAULT_DISPLAY_MANAGER_FILE=/etc/X11/default-display-manager
gen_config() {
# GSettings configuration uses dconf update to generate a gdm profile
if [ -d /var/lib/gdm3 ]; then
needed=no
if [ -f /var/lib/gdm3/dconf/db/gdm ]; then
for f in \
/usr/share/gdm/dconf /usr/share/gdm/dconf/*-settings \
/usr/share/gdm/dconf/locks /usr/share/gdm/dconf/locks/*-locks \
/etc/gdm3/greeter.gsettings; do
if [ "$f" -nt /var/lib/gdm3/dconf/db/gdm ]; then
needed=yes
break
fi
done
else
needed=yes
fi
if [ "$needed" = yes ]; then
rm -rf /var/lib/gdm3/dconf
mkdir -p /var/lib/gdm3/dconf/profile /var/lib/gdm3/dconf/db/gdm.d/locks
ln -s /usr/share/gdm/dconf-profile /var/lib/gdm3/dconf/profile/gdm
ln -s /usr/share/gdm/dconf/*-settings /var/lib/gdm3/dconf/db/gdm.d/
ln -s /usr/share/gdm/dconf/locks/*-locks /var/lib/gdm3/dconf/db/gdm.d/locks/
# The configuration file in /etc uses org.gnome.blah gsettings syntax.
# Convert it to org/gnome/blah dconf syntax.
awk '/\[.*\]/ { gsub("\\.","/"); } ! /^#/ { print;}' \
/etc/gdm3/greeter.gsettings > /var/lib/gdm3/dconf/db/gdm.d/90-debian-settings
dconf update /var/lib/gdm3/dconf/db 2> /dev/null
fi
fi
}
case "$1" in
start)
CONFIGURED_DAEMON=$(basename "$(cat $DEFAULT_DISPLAY_MANAGER_FILE 2> /dev/null)")
if grep -wqs text /proc/cmdline; then
log_warning_msg "Not starting GNOME Display Manager; found 'text' in kernel commandline."
elif [ -e "$DEFAULT_DISPLAY_MANAGER_FILE" ] && \
[ "$HEED_DEFAULT_DISPLAY_MANAGER" = "true" ] && \
[ "$CONFIGURED_DAEMON" != gdm3 ] ; then
log_action_msg "Not starting GNOME Display Manager; it is not the default display manager"
else
log_daemon_msg "Starting GNOME Display Manager" "gdm3"
gen_config
rm -f /var/lib/gdm/.ICEauthority
start-stop-daemon --start --quiet --pidfile /var/run/gdm3.pid \
--background --exec $DAEMON || log_end_msg 1
log_end_msg 0
fi
;;
stop)
log_daemon_msg "Stopping GNOME Display Manager" "gdm3"
set +e
start-stop-daemon --stop --quiet --pidfile /var/run/gdm3.pid \
--name gdm3 --retry 5
chvt 1
set -e
log_end_msg $?
;;
reload)
log_daemon_msg "Scheduling reload of GNOME Display Manager configuration" "gdm3"
set +e
gen_config
start-stop-daemon --stop --signal HUP --quiet --pidfile \
/var/run/gdm3.pid --name gdm3
start-stop-daemon --stop --signal HUP --quiet --name dconf-service \
--user Debian-gdm --oknodo
set -e
log_end_msg $?
;;
status)
status_of_proc -p "$PIDFILE" "$DAEMON" gdm3 && exit 0 || exit $?
;;
restart|force-reload)
$0 stop
$0 start
;;
*)
echo "Usage: /etc/init.d/gdm3 {start|stop|restart|reload|force-reload|status}"
exit 1
;;
esac
exit 0
-- debconf information:
gdm3/daemon_name: /usr/sbin/gdm3
shared/default-x-display-manager: gdm3
More information about the pkg-gnome-maintainers
mailing list