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 |
---|