~upstart-devel/upstart/upstart-jobs

« back to all changes in this revision

Viewing changes to utopic/etc/init.d/xrdp

  • Committer: Dimitri John Ledkov
  • Date: 2014-11-19 12:58:41 UTC
  • Revision ID: dimitri.j.ledkov@intel.com-20141119125841-98dr37roy8dvcv3b
auto update

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
#!/bin/sh -e
2
 
#
3
 
# start/stop xrdp and sesman daemons
4
 
#
5
 
### BEGIN INIT INFO
6
 
# Provides:          xrdp
7
 
# Required-Start:    $network $remote_fs
8
 
# Required-Stop:     $network $remote_fs
9
 
# Default-Start:     2 3 4 5
10
 
# Default-Stop:      0 1 6
11
 
# Short-Description: Start xrdp and sesman daemons
12
 
# Description:       XRDP uses the Remote Desktop Protocol to present a
13
 
#                    graphical login to a remote client allowing connection
14
 
#                    to a VNC server or another RDP server.
15
 
### END INIT INFO
16
 
 
17
 
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
18
 
DAEMON=/usr/sbin/xrdp
19
 
PIDDIR=/var/run/xrdp
20
 
USERID=xrdp
21
 
RSAKEYS=/etc/xrdp/rsakeys.ini
22
 
NAME=xrdp
23
 
DESC="Remote Desktop Protocol server"
24
 
 
25
 
test -x $DAEMON || exit 0
26
 
 
27
 
. /lib/lsb/init-functions
28
 
 
29
 
check_root()  {
30
 
    if [ "$(id -u)" != "0" ]; then
31
 
        log_failure_msg "You must be root to start, stop or restart $NAME."
32
 
        exit 4
33
 
    fi
34
 
}
35
 
 
36
 
if [ -r /etc/default/$NAME ]; then
37
 
   . /etc/default/$NAME
38
 
fi
39
 
 
40
 
# Tasks that can only be run as root
41
 
if [ "$(id -u)" = "0" ]; then
42
 
    # Check for pid dir
43
 
    if [ ! -d $PIDDIR ] ; then
44
 
        mkdir $PIDDIR
45
 
    fi
46
 
    chown $USERID:$USERID $PIDDIR
47
 
 
48
 
    # Check for rsa key 
49
 
    if [ ! -f $RSAKEYS ] || cmp $RSAKEYS /usr/share/doc/xrdp/rsakeys.ini > /dev/null; then
50
 
        log_action_begin_msg "Generating xrdp RSA keys..."
51
 
        (umask 077 ; xrdp-keygen xrdp $RSAKEYS)
52
 
        chown $USERID:$USERID $RSAKEYS
53
 
        if [ ! -f $RSAKEYS ] ; then
54
 
            log_action_end_msg 1 "could not create $RSAKEYS"
55
 
            exit 1
56
 
        fi
57
 
        log_action_end_msg 0 "done"
58
 
    fi
59
 
fi
60
 
 
61
 
 
62
 
case "$1" in
63
 
  start)
64
 
        check_root
65
 
        exitval=0
66
 
        log_daemon_msg "Starting $DESC " 
67
 
        if pidofproc -p $PIDDIR/$NAME.pid $DAEMON > /dev/null; then
68
 
            log_progress_msg "$NAME apparently already running"
69
 
            log_end_msg 0
70
 
            exit 0
71
 
        fi
72
 
        log_progress_msg $NAME
73
 
        start-stop-daemon --start --quiet --oknodo  --pidfile $PIDDIR/$NAME.pid \
74
 
            --chuid $USERID:$USERID --exec $DAEMON
75
 
        exitval=$?
76
 
        if [ "$SESMAN_START" = "yes" ] ; then
77
 
            log_progress_msg "sesman"
78
 
            start-stop-daemon --start --quiet --oknodo --pidfile $PIDDIR/xrdp-sesman.pid \
79
 
               --exec /usr/sbin/xrdp-sesman
80
 
            value=$?
81
 
            [ $value -gt 0 ] && exitval=$value
82
 
        fi
83
 
        # Make pidfile readables for all users (for status to work)
84
 
        [ -e $PIDDIR/xrdp-sesman.pid ] && chmod 0644 $PIDDIR/xrdp-sesman.pid
85
 
        [ -e $PIDDIR/$NAME.pid ] && chmod 0644 $PIDDIR/$NAME.pid
86
 
        # Note: Unfortunately, xrdp currently takes too long to create
87
 
        # the pidffile unless properly patched
88
 
        log_end_msg $exitval
89
 
        ;;
90
 
  stop)
91
 
        check_root
92
 
        [ -n "$XRDP_UPGRADE" -a "$RESTART_ON_UPGRADE" = "no" ] && {
93
 
            echo "Upgrade in progress, no restart of xrdp."
94
 
            exit 0
95
 
        }
96
 
        exitval=0
97
 
        log_daemon_msg "Stopping RDP Session manager " 
98
 
        log_progress_msg "sesman"
99
 
        if pidofproc -p  $PIDDIR/xrdp-sesman.pid /usr/sbin/xrdp-sesman  > /dev/null; then
100
 
            start-stop-daemon --stop --quiet --oknodo --pidfile $PIDDIR/xrdp-sesman.pid \
101
 
                --chuid $USERID:$USERID --exec /usr/sbin/xrdp-sesman
102
 
            exitval=$?
103
 
        else
104
 
            log_progress_msg "apparently not running"
105
 
        fi
106
 
        log_progress_msg $NAME
107
 
        if pidofproc -p  $PIDDIR/$NAME.pid $DAEMON  > /dev/null; then
108
 
            start-stop-daemon --stop --quiet --oknodo --pidfile $PIDDIR/$NAME.pid \
109
 
            --exec $DAEMON
110
 
            value=$?
111
 
            [ $value -gt 0 ] && exitval=$value
112
 
        else
113
 
            log_progress_msg "apparently not running"
114
 
        fi
115
 
        log_end_msg $exitval
116
 
        ;;
117
 
  restart|force-reload)
118
 
        check_root
119
 
        $0 stop
120
 
        # Wait for things to settle down
121
 
        sleep 1
122
 
        $0 start
123
 
        ;;
124
 
  reload)
125
 
        log_warning_msg "Reloading $NAME daemon: not implemented, as the daemon"
126
 
        log_warning_msg "cannot re-read the config file (use restart)."
127
 
        ;;
128
 
  status)
129
 
        exitval=0
130
 
        log_daemon_msg "Checking status of $DESC" "$NAME"
131
 
        if pidofproc -p  $PIDDIR/$NAME.pid $DAEMON  > /dev/null; then
132
 
            log_progress_msg "running"
133
 
            log_end_msg 0
134
 
        else
135
 
            log_progress_msg "apparently not running"
136
 
            log_end_msg 1 || true
137
 
            exitval=1
138
 
        fi
139
 
        if [ "$SESMAN_START" = "yes" ] ; then
140
 
            log_daemon_msg "Checking status of RDP Session Manager" "sesman"
141
 
            if pidofproc -p  $PIDDIR/xrdp-sesman.pid /usr/sbin/xrdp-sesman  > /dev/null; then
142
 
                log_progress_msg "running"
143
 
                log_end_msg 0
144
 
            else
145
 
                log_progress_msg "apparently not running"
146
 
                log_end_msg 1 || true
147
 
                exitval=1
148
 
            fi
149
 
        fi
150
 
        exit $exitval
151
 
        ;;
152
 
  *)
153
 
        N=/etc/init.d/$NAME
154
 
        echo "Usage: $N {start|stop|restart|force-reload|status}" >&2
155
 
        exit 1
156
 
        ;;
157
 
esac
158
 
 
159
 
exit 0