Patrick Williams | b48b7b4 | 2016-08-17 15:04:38 -0500 | [diff] [blame^] | 1 | #! /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 | # |
| 15 | set -e |
| 16 | |
| 17 | PATH=/sbin:/bin:/usr/sbin:/usr/bin |
| 18 | DAEMON=/usr/sbin/gdm |
| 19 | |
| 20 | test -x $DAEMON || exit 0 |
| 21 | |
| 22 | if [ -r /etc/default/locale ]; then |
| 23 | . /etc/default/locale |
| 24 | export LANG LANGUAGE |
| 25 | fi |
| 26 | |
| 27 | # To start gdm even if it is not the default display manager, change |
| 28 | # HEED_DEFAULT_DISPLAY_MANAGER to "false." |
| 29 | HEED_DEFAULT_DISPLAY_MANAGER=true |
| 30 | DEFAULT_DISPLAY_MANAGER_FILE=/etc/X11/default-display-manager |
| 31 | |
| 32 | case "$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 | ;; |
| 87 | esac |
| 88 | |
| 89 | exit 0 |