123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166 |
- #! /bin/sh
- ### BEGIN INIT INFO
- # Provides: xsd
- # Required-Start: $remote_fs $syslog
- # Required-Stop: $remote_fs $syslog
- # Default-Start: 2 3 4 5
- # Default-Stop:
- # Short-Description: eXperimental Shell Daemon
- ### END INIT INFO
- set -e
- echo "SET XSD_OPTS in this script to define allow KEX, cipher and hmac algs"
- #XSD_OPTS="-L -aK KEX_all -aC C_all -aH H_all"
- exit 1
- # /etc/init.d/xsd: start and stop the eXperimental "secure" Shell Daemon
- test -x /usr/local/sbin/xsd || exit 0
- ( /usr/local/sbin/xsd -h 2>&1 | grep -q chaff ) 2>/dev/null || exit 0
- umask 022
- #if test -f /etc/default/ssh; then
- # . /etc/default/ssh
- #fi
- . /lib/lsb/init-functions
- if [ -n "$2" ]; then
- XSD_OPTS="$XSD_OPTS $2"
- fi
- # Are we running from init?
- run_by_init() {
- ([ "$previous" ] && [ "$runlevel" ]) || [ "$runlevel" = S ]
- }
- check_for_no_start() {
- # forget it if we're trying to start, and /etc/xsd_not_to_be_run exists
- if [ -e /etc/xsd_not_to_be_run ]; then
- if [ "$1" = log_end_msg ]; then
- log_end_msg 0 || true
- fi
- if ! run_by_init; then
- log_action_msg "eXperimental Shell Daemon not in use (/etc/xsd_not_to_be_run)" || true
- fi
- exit 0
- fi
- }
- check_dev_null() {
- if [ ! -c /dev/null ]; then
- if [ "$1" = log_end_msg ]; then
- log_end_msg 1 || true
- fi
- if ! run_by_init; then
- log_action_msg "/dev/null is not a character device!" || true
- fi
- exit 1
- fi
- }
- #check_privsep_dir() {
- # # Create the PrivSep empty dir if necessary
- # if [ ! -d /run/sshd ]; then
- # mkdir /run/sshd
- # chmod 0755 /run/sshd
- # fi
- #}
- #check_config() {
- # if [ ! -e /etc/xsd_not_to_be_run ]; then
- # /usr/local/sbin/xsd $XSD_OPTS -t || exit 1
- # fi
- #}
- export PATH="${PATH:+$PATH:}/usr/local/sbin:/usr/sbin:/sbin"
- case "$1" in
- start)
- #check_privsep_dir
- check_for_no_start
- check_dev_null
- log_daemon_msg "Starting eXperimental Shell Daemon" "xsd" || true
- if start-stop-daemon --start -b --quiet --oknodo --chuid 0:0 --exec /usr/local/sbin/xsd -- $XSD_OPTS; then
- log_end_msg 0 || true
- else
- log_end_msg 1 || true
- fi
- ;;
- stop)
- log_daemon_msg "Stopping eXperimental Shell Daemon" "xsd" || true
- if start-stop-daemon --stop --quiet --oknodo --exec /usr/local/sbin/xsd; then
- log_end_msg 0 || true
- else
- log_end_msg 1 || true
- fi
- ;;
- reload|force-reload)
- check_for_no_start
- #check_config
- log_daemon_msg "Reloading eXperimental Shell Daemon's configuration" "xsd" || true
- if start-stop-daemon --stop --signal 1 --quiet --oknodo --exec /usr/local/sbin/xsd; then
- log_end_msg 0 || true
- else
- log_end_msg 1 || true
- fi
- ;;
- restart)
- #check_privsep_dir
- #check_config
- log_daemon_msg "Restarting eXperimental Shell Daemon" "xsd" || true
- start-stop-daemon --stop --quiet --oknodo --retry 30 --exec /usr/local/sbin/xsd
- check_for_no_start log_end_msg
- check_dev_null log_end_msg
- if start-stop-daemon --start -b --quiet --oknodo --chuid 0:0 --exec /usr/local/sbin/xsd -- $XSD_OPTS; then
- log_end_msg 0 || true
- else
- log_end_msg 1 || true
- fi
- ;;
- try-restart)
- #check_privsep_dir
- #check_config
- log_daemon_msg "Restarting eXperimental Shell Daemon" "xsd" || true
- RET=0
- start-stop-daemon --stop --quiet --retry 30 --exec /usr/local/sbin/xsd || RET="$?"
- case $RET in
- 0)
- # old daemon stopped
- check_for_no_start log_end_msg
- check_dev_null log_end_msg
- if start-stop-daemon --start -b --quiet --oknodo --chuid 0:0 --exec /usr/local/sbin/xsd -- $XSD_OPTS; then
- log_end_msg 0 || true
- else
- log_end_msg 1 || true
- fi
- ;;
- 1)
- # daemon not running
- log_progress_msg "(not running)" || true
- log_end_msg 0 || true
- ;;
- *)
- # failed to stop
- log_progress_msg "(failed to stop)" || true
- log_end_msg 1 || true
- ;;
- esac
- ;;
- status)
- status_of_proc -p /run/xsd.pid /usr/local/sbin/xsd xsd && exit 0 || exit $?
- ;;
- *)
- log_action_msg "Usage: /etc/init.d/xsd {start|stop|reload|force-reload|restart|try-restart|status}" || true
- exit 1
- esac
- exit 0
|