blob: bb5b418645ab8ec782c102f8b4973819a1fca7f5 [file] [log] [blame]
Patrick Williamsb48b7b42016-08-17 15:04:38 -05001#! /bin/sh
2### BEGIN INIT INFO
3# Provides: gdm
4# Should-Start: console-screen acpid dbus hal network-manager
5# Required-Start: $local_fs $remote_fs
6# Required-Stop: $local_fs $remote_fs
7# Default-Start: 5
8# Default-Stop: 0 1 2 3 6
9# Short-Description: GNOME Display Manager
10# Description: Debian init script for the GNOME Display Manager
11### END INIT INFO
12#
13# Author: Ryan Murray <rmurray@debian.org>
14#
15set -e
16
17PATH=/sbin:/bin:/usr/sbin:/usr/bin
18DAEMON=/usr/sbin/gdm
19
20test -x $DAEMON || exit 0
21
22if [ -r /etc/default/locale ]; then
23 . /etc/default/locale
24 export LANG LANGUAGE
25fi
26
27# To start gdm even if it is not the default display manager, change
28# HEED_DEFAULT_DISPLAY_MANAGER to "false."
29HEED_DEFAULT_DISPLAY_MANAGER=true
30DEFAULT_DISPLAY_MANAGER_FILE=/etc/X11/default-display-manager
31
32case "$1" in
33 start)
34 # make needed directories in volatile
35
36 if [ -e /var/log/gdm ] ; then
37 rm -rf /var/log/gdm
38 fi
39
40 mkdir -m 01770 /var/log/gdm
41 chown gdm:gdm /var/log/gdm
42
43 if [ -e /tmp/.ICE-unix ] ; then
44 rm -rf /tmp/.ICE-unix
45 fi
46
47 mkdir -m 01777 /tmp/.ICE-unix
48 chown root:root /tmp/.ICE-unix
49
50 CONFIGURED_DAEMON=$(basename "$(cat $DEFAULT_DISPLAY_MANAGER_FILE 2> /dev/null)")
51 if grep -wqs text /proc/cmdline; then
52 echo "Not starting GNOME Display Manager (gdm); found 'text' in kernel commandline."
53 elif [ -e "$DEFAULT_DISPLAY_MANAGER_FILE" ] && \
54 [ "$HEED_DEFAULT_DISPLAY_MANAGER" = "true" ] && \
55 [ "$CONFIGURED_DAEMON" != gdm ] ; then
56 echo "Not starting GNOME Display Manager; it is not the default display manager"
57 else
58 echo "Starting GNOME Display Manager" "gdm"
59 start-stop-daemon --start -b --exec $DAEMON
60 fi
61 ;;
62 stop)
63 echo "Stopping GNOME Display Manager" "gdm"
64 set +e
65 start-stop-daemon --stop --quiet --pidfile /var/run/gdm.pid \
66 --name gdm --retry 5
67 set -e
68 ;;
69 reload)
70 echo "Scheduling reload of GNOME Display Manager configuration" "gdm"
71 set +e
72 start-stop-daemon --stop --signal USR1 --quiet --pidfile \
73 /var/run/gdm.pid --name gdm
74 set -e
75 ;;
76 status)
77 status_of_proc -p "$PIDFILE" "$DAEMON" gdm && exit 0 || exit $?
78 ;;
79 restart|force-reload)
80 $0 stop
81 $0 start
82 ;;
83 *)
84 echo "Usage: /etc/init.d/gdm {start|stop|restart|reload|force-reload|status}"
85 exit 1
86 ;;
87esac
88
89exit 0