[134] | 1 | #! /bin/sh |
---|
| 2 | # |
---|
| 3 | ### BEGIN INIT INFO |
---|
| 4 | # Provides: gdm |
---|
| 5 | # Should-Start: console-screen acpid dbus hal network-manager |
---|
| 6 | # Required-Start: $local_fs $remote_fs |
---|
| 7 | # Required-Stop: $local_fs $remote_fs |
---|
| 8 | # Default-Start: 2 3 4 5 |
---|
| 9 | # Default-Stop: 0 1 6 |
---|
| 10 | # Short-Description: GNOME Display Manager |
---|
| 11 | # Description: Debian init script for the GNOME Display Manager |
---|
| 12 | ### END INIT INFO |
---|
| 13 | # |
---|
| 14 | # Author: Ryan Murray <rmurray@debian.org> |
---|
| 15 | # |
---|
| 16 | set -e |
---|
| 17 | |
---|
| 18 | # To start gdm even if it is not the default display manager, change |
---|
| 19 | # HEED_DEFAULT_DISPLAY_MANAGER to "false." |
---|
| 20 | HEED_DEFAULT_DISPLAY_MANAGER=true |
---|
| 21 | DEFAULT_DISPLAY_MANAGER_FILE=/etc/X11/default-display-manager |
---|
| 22 | PATH=/sbin:/bin:/usr/sbin:/usr/bin |
---|
| 23 | DAEMON=/usr/sbin/gdm-binary |
---|
| 24 | PIDFILE=/var/run/gdm.pid |
---|
| 25 | UPGRADEFILE=/var/run/gdm.upgrade |
---|
| 26 | |
---|
| 27 | if [ -e $UPGRADEFILE -a "$1" != "restart" -a "$1" != "force-reload" ]; then |
---|
| 28 | SSD_ARG="--startas $DAEMON" |
---|
| 29 | rm -f $UPGRADEFILE |
---|
| 30 | else |
---|
| 31 | SSD_ARG="--exec $DAEMON" |
---|
| 32 | fi |
---|
| 33 | |
---|
| 34 | # Allow cdd to override the config |
---|
| 35 | if [ -f /etc/gdm/gdm-cdd.conf ]; then |
---|
| 36 | CONFIG_FILE="--config=/etc/gdm/gdm-cdd.conf" |
---|
| 37 | fi |
---|
| 38 | |
---|
| 39 | test -x $DAEMON || exit 0 |
---|
| 40 | |
---|
| 41 | if [ -r /etc/default/locale ]; then |
---|
| 42 | . /etc/default/locale |
---|
| 43 | export LANG LANGUAGE |
---|
| 44 | elif [ -r /etc/environment ]; then |
---|
| 45 | . /etc/environment |
---|
| 46 | export LANG LANGUAGE |
---|
| 47 | fi |
---|
| 48 | |
---|
| 49 | . /lib/lsb/init-functions |
---|
| 50 | |
---|
| 51 | case "$1" in |
---|
| 52 | start) |
---|
| 53 | if grep -wqs text /proc/cmdline; then |
---|
| 54 | log_warning_msg "Not starting GNOME Display Manager (gdm); found 'text' in kernel commandline." |
---|
| 55 | elif [ -e "$DEFAULT_DISPLAY_MANAGER_FILE" -a "$HEED_DEFAULT_DISPLAY_MANAGER" = "true" -a "$(cat $DEFAULT_DISPLAY_MANAGER_FILE 2>/dev/null)" != "/usr/sbin/gdm" ]; then |
---|
| 56 | log_warning_msg "Not starting GNOME Display Manager (gdm); it is not the default display manager." |
---|
| 57 | else |
---|
| 58 | if [ -z "$SPLASH_ORIG_CONSOLE" ]; then |
---|
| 59 | log_begin_msg "Starting GNOME Display Manager..." |
---|
| 60 | fi |
---|
| 61 | # if usplash is running, make sure to stop it now, yes "start" kills it. |
---|
| 62 | if [ "$SPLASH_ORIG_CONSOLE" ]; then |
---|
| 63 | # usplash was already shut down earlier, so don't |
---|
| 64 | # log success as it will look weird on the console. |
---|
| 65 | log_end_msg=: |
---|
| 66 | elif pidof usplash > /dev/null; then |
---|
| 67 | SPLASH_ORIG_CONSOLE="$(fgconsole)" |
---|
| 68 | DO_NOT_SWITCH_VT=yes /etc/init.d/usplash start |
---|
| 69 | # We've just shut down usplash, so don't log |
---|
| 70 | # success as it will look weird on the console. |
---|
| 71 | log_end_msg=: |
---|
| 72 | else |
---|
| 73 | log_end_msg=log_end_msg |
---|
| 74 | fi |
---|
| 75 | start-stop-daemon --start --quiet --background --oknodo --pidfile $PIDFILE --name gdm-binary $SSD_ARG -- $CONFIG_FILE >/dev/null 2>&1 || log_end_msg 1 |
---|
| 76 | $log_end_msg 0 |
---|
| 77 | |
---|
| 78 | if [ "$SPLASH_ORIG_CONSOLE" ] && \ |
---|
| 79 | [ "$SPLASH_ORIG_CONSOLE" != serial ]; then |
---|
| 80 | # Wait a short while for the active console to |
---|
| 81 | # change, to try to avoid visible console noise from |
---|
| 82 | # later init scripts. |
---|
| 83 | i=0 |
---|
| 84 | while [ "$(fgconsole)" = "$SPLASH_ORIG_CONSOLE" ]; do |
---|
| 85 | i="$(($i + 1))" |
---|
| 86 | if [ "$i" -gt 5 ]; then |
---|
| 87 | break |
---|
| 88 | fi |
---|
| 89 | sleep 1 |
---|
| 90 | done |
---|
| 91 | fi |
---|
| 92 | fi |
---|
| 93 | ;; |
---|
| 94 | stop) |
---|
| 95 | log_begin_msg "Stopping GNOME Display Manager..." |
---|
| 96 | start-stop-daemon --stop --quiet --oknodo --pidfile $PIDFILE --name gdm-binary $SSD_ARG --retry 30 >/dev/null 2>&1 |
---|
| 97 | log_end_msg 0 |
---|
| 98 | ;; |
---|
| 99 | reload) |
---|
| 100 | log_begin_msg "Reloading GNOME Display Manager configuration..." |
---|
| 101 | log_warning_msg "Changes will take effect when all current X sessions have ended." |
---|
| 102 | start-stop-daemon --stop --signal USR1 --quiet --pidfile \ |
---|
| 103 | $PIDFILE --name gdm-binary $SSD_ARG >/dev/null 2>&1 |
---|
| 104 | log_end_msg 0 |
---|
| 105 | ;; |
---|
| 106 | restart|force-reload) |
---|
| 107 | $0 stop || true |
---|
| 108 | $0 start |
---|
| 109 | ;; |
---|
| 110 | status) |
---|
| 111 | status_of_proc -p "$PIDFILE" "$DAEMON" gdm-binary && exit 0 || exit $? |
---|
| 112 | ;; |
---|
| 113 | *) |
---|
| 114 | log_success_msg "Usage: /etc/init.d/gdm {start|stop|restart|reload|force-reload|status}" |
---|
| 115 | exit 1 |
---|
| 116 | ;; |
---|
| 117 | esac |
---|
| 118 | |
---|
| 119 | exit 0 |
---|