1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134
|
#!/bin/sh
### BEGIN INIT INFO
# Provides: wdm
# Required-Start: $local_fs $remote_fs x11-common
# Required-Stop: $local_fs $remote_fs
# Should-Start: xfs $named slapd console-screen kbd acpid dbus network-manager
# Should-Stop: xfs $named slapd console-screen kbd acpid dbus network-manager
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: start or stop the WINGs display manager
# Description: start or stop the WINGs display manager
### END INIT INFO
set -e
# To start wdm even if it is not the default display manager, change
# HEED_DEFAULT_DISPLAY_MANAGER to "false."
# Also overridable from command line like:
# HEED_DEFAULT_DISPLAY_MANAGER=false /etc/init.d/wdm start
[ -z "$HEED_DEFAULT_DISPLAY_MANAGER" ] && HEED_DEFAULT_DISPLAY_MANAGER=true
DEFAULT_DISPLAY_MANAGER_FILE=/etc/X11/default-display-manager
PATH=/bin:/usr/bin:/sbin:/usr/sbin
DAEMON=/usr/bin/wdm
PIDFILE=/var/run/wdm.pid
test -x $DAEMON || exit 0
. /lib/lsb/init-functions
# If we have upgraded the daemon since we last started it, we can't use the
# --exec argument to start-stop-daemon, because the daemon's inode will have
# changed. The risk here is that in a situation where the daemon died, its
# pidfile was not cleaned up, we've upgraded it, *and* some other process is now
# running under that pid, start-stop-daemon will send signals to an innocent
# process. However, this seems like a corner case. C'est la vie!
# Update: --name should prevent signalling innocent processes.
SSD_START_ARGS="--pidfile $PIDFILE --name $(basename $DAEMON) --startas $DAEMON"
SSD_STOP_ARGS="--pidfile $PIDFILE --name $(basename $DAEMON) --retry TERM/5/TERM/5"
SSD_RELOAD_ARGS="--pidfile $PIDFILE --name $(basename $DAEMON) --signal 1"
# This file is touched in case of upgrade. Remove it on successful stop.
UPGRADEFILE=/var/run/wdm.upgrade
wdm_may_update_wmlist () {
if grep -qs '^auto-update-wmlist' /etc/X11/wdm/wdm.options; then
update_wdm_wmlist
fi
}
case "$1" in
start)
if [ "$HEED_DEFAULT_DISPLAY_MANAGER" = "true" ] &&
[ -e $DEFAULT_DISPLAY_MANAGER_FILE ] &&
[ "$(cat $DEFAULT_DISPLAY_MANAGER_FILE)" != "$DAEMON" ]; then
echo "Not starting WINGs display manager (wdm); it is not the default display manager."
else
# Bug#386424: wdm: Allow setting greeter font via /etc/GNUstep/Defaults/WMGLOBAL
mkdir -p /var/run/wdm && ln -f -s /etc/GNUstep /var/run/wdm
wdm_may_update_wmlist
if [ -x /bin/plymouth ] ; then
/bin/plymouth quit || true
fi
log_daemon_msg "Starting WINGs display manager: wdm"
start-stop-daemon --start --quiet $SSD_START_ARGS \
|| log_progress_msg "already running"
log_end_msg 0
fi
;;
restart)
/etc/init.d/wdm stop
[ -f $PIDFILE ] && exit 1
/etc/init.d/wdm start
;;
reload)
wdm_may_update_wmlist
log_daemon_msg "Reloading WINGs display manager configuration..."
if ! start-stop-daemon --stop --quiet $SSD_RELOAD_ARGS; then
log_progress_msg "wdm not running."
fi
log_end_msg 0
;;
force-reload)
/etc/init.d/wdm reload
;;
stop)
log_daemon_msg "Stopping WINGs display manager: wdm"
if ! [ -f $PIDFILE ]; then
log_progress_msg "not running ($PIDFILE not found)"
else
start-stop-daemon --stop --quiet $SSD_STOP_ARGS
SSD_RES=$?
if [ $SSD_RES -eq 1 ]; then
log_progress_msg "not running"
fi
if [ $SSD_RES -eq 2 ]; then
log_progress_msg "not responding to TERM signals"
else
if [ -f $PIDFILE ]; then
log_progress_msg "(removing stale $PIDFILE)"
rm $PIDFILE
fi
fi
if [ $SSD_RES -ne 2 ]; then
rm -f $UPGRADEFILE
fi
fi
log_end_msg 0
;;
status)
status_of_proc -p $PIDFILE $DAEMON wdm && exit 0 || exit $?
;;
*)
echo "Usage: /etc/init.d/wdm {start|stop|restart|reload|force-reload|status}"
exit 1
;;
esac
exit 0
# vim:set ai et sts=2 sw=2 tw=0:
# Local Variables:
# mode: shell-script
# sh-basic-offset: 2
# sh-indentation: 2
# End:
|