Lidando com o horrível script de inicialização do Xrdp

Eu precisei instalar o Xrdp em algumas máquinas porque meu thin client não suporta nada além de RDP. Infelizmente, eu encontrei um script de inicialização horrivelmente escrito que (em meus testes) nem funcionou corretamente. Então, eu escrevi um melhor.

#!/bin/bash

LOG
=/dev/null

is_xrdp_running
() {
ps u
--noheading -C xrdp | grep -q -i xrdp
return $?;
}

is_sesman_running
() {
ps u
--noheading -C xrdp-sesman | grep -q -i xrdp-sesman
return $?;
}

xrdp_start
() {
is_xrdp_running
; if [[ $? == 0 ]]; then echo "xrdp is already running"; exit 1; fi
is_sesman_running
; if [[ $? == 0 ]]; then echo "sesman is already running"; exit 1; fi
echo
-n "Starting xrdp and sesman... "
/usr/sbin/xrdp >> $LOG
/usr/sbin/xrdp-sesman >> $LOG
echo
"done."
return 0;
}

xrdp_stop
() {
is_xrdp_running
; if [[ $? == 1 ]]; then echo "xrdp is not running"; exit 1; fi
is_sesman_running
; if [[ $? == 1 ]]; then echo "sesman is not running"; exit 1; fi
echo
-n "Stopping xrdp and sesman... "
/usr/sbin/xrdp-sesman --kill >> $LOG
/usr/sbin/xrdp --kill >> $LOG
echo
"done."
return 0;
}

case "$1" in
start
)
xrdp_start

;;
stop
)
xrdp_stop

;;
force
-reload|restart)
xrdp_stop

xrdp_start

;;
*)
echo
"Usage: `basename $0` {start|stop|restart|force-reload}"
exit 1
esac

exit 0