Blob Blame History Raw
#!/bin/sh
#
# Init file for tor - An Anonymizing overlay network for TCP
#
# chkconfig: - 99 01
# description:   An Anonymizing overlay network for TCP
#
### BEGIN INIT INFO
# Default-Stop:       0 1 2 3 4 5 6
# Short-Description:  An Anonymizing overlay network for TCP
# Description:        An Anonymizing overlay network for TCP
# Required-Start: $network $syslog $remote_fs $local_fs
### END INIT INFO

. /lib/lsb/init-functions

f=/etc/sysconfig/tor

TOR_OPTS=
TOR_PIDFILE=/var/run/tor/tor.pid
TOR_USER=toranon
test ! -r "$f" || . "$f"

prog="/usr/bin/tor"

lockfile=/var/lock/subsys/tor
pidfile=$TOR_PIDFILE

start() {
    echo -n $"Starting $prog: "

    start_daemon $prog --PIDFile "$pidfile" --RunAsDaemon 1 $TOR_OPTS
    rc=$?
    if test $rc -eq 0 && touch $lockfile; then
	log_success_msg
    else
	log_failure_msg
    fi
    
    return $rc
}

stop() {
    echo -n $"Stopping $prog: "
    killproc $prog -INT && log_success_msg || log_failure_msg
    rm -f $pidfile $lockfile
}

restart() {
    stop
    start
}

reload() {
    echo -n $"Reloading $prog: "
    killproc $prog -HUP && log_success_msg || log_failure_msg
}

status() {
    pids=$(pidofproc "$prog")
    if test -n "$pids"; then
	echo $"$prog is running"
	return 0
    fi

    if test -s $pidfile; then
	echo $"$prog is dead and /var/run pid file exists"
	return 1
    fi
    
    if test -f $lockfile; then
	echo $"$prog is dead and /var/lock lock file exists"
	return 2
    fi

    echo $"$prog is not running"
    return 3
}

case $1 in
    (start)
	start
	;;
    (stop)
	stop
	;;
    (restart|force-reload)
	restart
	;;
    (condrestart|try-restart)
	if [ -f $lockfile ]; then
	    restart
	fi
	;;
    (reload)
	reload
	;;
    (status)
	status
	;;
    (*)
	echo $"Usage: $0 {start|stop|force-reload|reload|try-restart|status}"
	exit 3
esac