#!/bin/sh # # template Summary of the service. # # chkconfig: - 90 10 # description: multi-line \ # description \ # of the service. # processname: xrdp # config: /etc/xrdp/.ini # pidfile1: /var/run/xrdp.pid # pidfile2: /var/run/sesman.pid # Do not load RH compatibility interface. WITHOUT_RC_COMPAT= # Source function library. . /etc/init.d/functions #. /etc/init.d/functions-compat XRDP=xrdp SESMAN=sesman STARTWM=/etc/X11/xdm/Xsession RUNDIR=/usr/lib/xrdp #RUNDIR=/usr/bin LOG=/dev/null SESMAN_PIDFILE=/var/run/$SESMAN.pid XRDP_PIDFILE=/var/run/$XRDP.pid SESMAN_LOCKFILE=/var/lock/subsys/$SESMAN XRDP_LOCKFILE=/var/lock/subsys/$XRDP RETVAL=0 test -x $RUNDIR/$XRDP || echo "$XRDP is not executable" test -x $RUNDIR/$SESMAN || echo "$SESMAN is not executable" if ! test -x $STARTWM; then failure "$STARTWM is not executable" exit 1 fi is_xrdp_running() { test -f "$XRDP_PIDFILE" && checkpid `cat $XRDP_PIDFILE 2>/dev/null` return $? } is_sesman_running() { test -f "$SESMAN_PIDFILE" && checkpid `cat $SESMAN_PIDFILE 2>/dev/null` return $? } start() { # is_yes "$NETWORKING" || return 0 echo -n "Starting xrdp services: " if is_sesman_running; then RETVAL=0 echo else start-stop-daemon --start --quiet --exec $RUNDIR/$XRDP --pidfile $XRDP_PIDFILE -- RETVAL=$? fi echo -n "Starting sesman services: " if is_sesman_running; then RETVAL2=0 echo else start-stop-daemon --start --quiet --exec $RUNDIR/$SESMAN --pidfile $SESMAN_PIDFILE -- >/dev/null RETVAL2=$? fi if [ $RETVAL -eq 0 -a $RETVAL2 -eq 0 ] ; then success "xrdp startup" touch "$XRDP_LOCKFILE" touch "$SESMAN_LOCKFILE" else RETVAL=1 failure "xrdp startup" fi echo return $RETVAL } stop() { stop_daemon --pidfile "$XRDP_PIDFILE" --lockfile "$XRDP_LOCKFILE" -- $RUNDIR/$XRDP --kill RETVAL=$? stop_daemon --pidfile "$SESMAN_PIDFILE" --lockfile "$SESMAN_LOCKFILE" -- $RUNDIR/$SESMAN --kill RETVAL2=$? if [ $RETVAL -eq 0 -a $RETVAL2 -eq 0 ] ; then success "xrdp stopped" else RETVAL=1 failure "xrdp stopped" fi echo return $RETVAL } restart() { stop start } reload() { restart } check_status() { status --pidfile "$XRDP_PIDFILE" $RUNDIR/$XRDP -- RET=$? status --pidfile "$SESMAN_PIDFILE" $RUNDIR/$SESMAN -- RET2=$? [ $RET -eq 0 -a $RET2 -eq 0 ] && return 0 || return 1 } # See how we were called. case "$1" in start) start ;; stop) stop ;; reload) reload ;; restart) restart ;; condstop) if [ -e "$LOCKFILE" ]; then stop fi ;; condrestart) if [ -e "$LOCKFILE" ]; then restart fi ;; condreload) if [ -e "$LOCKFILE" ]; then reload fi ;; status) check_status RETVAL=$? ;; *) msg_usage "${0##*/} {start|stop|reload|restart|condstop|condrestart|condreload|status}" RETVAL=1 esac exit $RETVAL