mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2025-02-22 22:25:51 +01:00
add another contributed tor start/stop script
plus ship both our start/stop scripts in the tarball svn:r2845
This commit is contained in:
parent
3f5c113815
commit
acb2c10a5b
2 changed files with 170 additions and 1 deletions
|
@ -1,6 +1,6 @@
|
|||
confdir = $(sysconfdir)/tor
|
||||
|
||||
EXTRA_DIST = tor-tsocks.conf torify.1 tor-control.py tor.nsi
|
||||
EXTRA_DIST = tor-tsocks.conf torify.1 tor-control.py tor.nsi tor.sh torctl
|
||||
|
||||
conf_DATA = tor-tsocks.conf
|
||||
|
||||
|
|
169
contrib/torctl.in
Normal file
169
contrib/torctl.in
Normal file
|
@ -0,0 +1,169 @@
|
|||
#!/bin/sh
|
||||
#
|
||||
# TOR control script designed to allow an easy command line interface
|
||||
# to controlling The Onion Router
|
||||
#
|
||||
# The exit codes returned are:
|
||||
# 0 - operation completed successfully
|
||||
# 1 -
|
||||
# 2 - Command not supported
|
||||
# 3 - Could not be started
|
||||
# 4 - Could not be stopped
|
||||
# 5 -
|
||||
# 6 -
|
||||
# 7 -
|
||||
# 8 -
|
||||
#
|
||||
# When multiple arguments are given, only the error from the _last_
|
||||
# one is reported.
|
||||
#
|
||||
#
|
||||
# |||||||||||||||||||| START CONFIGURATION SECTION ||||||||||||||||||||
|
||||
# -------------------- --------------------
|
||||
# Name of the executable
|
||||
EXEC=tor
|
||||
#
|
||||
# the path to your binary, including options if necessary
|
||||
TORBIN="@BINDIR@/$EXEC"
|
||||
#
|
||||
# the path to the configuration file
|
||||
TORCONF=@CONFDIR@/torrc
|
||||
#
|
||||
# the path to your PID file
|
||||
PIDFILE=@LOCALSTATEDIR@/run/tor/tor.pid
|
||||
#
|
||||
# The path to the log file
|
||||
LOGFILE=@LOCALSTATEDIR@/log/tor/tor.log
|
||||
#
|
||||
# The path to the datadirectory
|
||||
TORDATA=@LOCALSTATEDIR@/lib/tor
|
||||
#
|
||||
# The USER and GROUP names:
|
||||
# TORUSER and TORGROUP if defined in the environment, else LOGNAME and GROUP
|
||||
# respectively.
|
||||
TORUSER=
|
||||
TORGROUP=
|
||||
|
||||
TORARGS="--pidfile $PIDFILE --log \\"notice file $LOGFILE \\" --runasdaemon 1"
|
||||
TORARGS="$TORARGS --datadirectory $TORDATA"
|
||||
|
||||
if [ "x$TORUSER" != "x" ]; then
|
||||
TORARGS="$TORARGS --user $TORUSER"
|
||||
fi
|
||||
if [ "x$TORGROUP" != "x" ]; then
|
||||
TORARGS="$TORARGS --group $TORGROUP"
|
||||
fi
|
||||
|
||||
# the command used to start
|
||||
if [ "x$TORUSER" = "x" ]; then
|
||||
START="$TORBIN -f $TORCONF $TORARGS"
|
||||
else
|
||||
START="/bin/su -c \\"$TORBIN -f $TORCONF $TORARGS\\" $TORUSER"
|
||||
fi
|
||||
|
||||
#
|
||||
# -------------------- --------------------
|
||||
# |||||||||||||||||||| END CONFIGURATION SECTION ||||||||||||||||||||
|
||||
|
||||
ERROR=0
|
||||
ARGV="$@"
|
||||
if [ "x$ARGV" = "x" ] ; then
|
||||
ARGS="help"
|
||||
fi
|
||||
|
||||
checkIfRunning ( ) {
|
||||
# check for pidfile
|
||||
PID=unknown
|
||||
if [ -f $PIDFILE ] ; then
|
||||
PID=`/bin/cat $PIDFILE`
|
||||
if [ "x$PID" != "x" ] ; then
|
||||
if kill -0 $PID 2>/dev/null ; then
|
||||
STATUS="$EXEC (pid $PID) running"
|
||||
RUNNING=1
|
||||
else
|
||||
STATUS="PID file ($PIDFILE) present, but $EXEC ($PID) not running"
|
||||
RUNNING=0
|
||||
fi
|
||||
else
|
||||
STATUS="$EXEC (pid $PID?) not running"
|
||||
RUNNING=0
|
||||
fi
|
||||
else
|
||||
STATUS="$EXEC apparently not running (no pid file)"
|
||||
RUNNING=0
|
||||
fi
|
||||
return
|
||||
}
|
||||
|
||||
for ARG in $@ $ARGS
|
||||
do
|
||||
checkIfRunning
|
||||
|
||||
case $ARG in
|
||||
start)
|
||||
if [ $RUNNING -eq 1 ]; then
|
||||
echo "$0 $ARG: $EXEC (pid $PID) already running"
|
||||
continue
|
||||
fi
|
||||
if $START ; then
|
||||
echo "$0 $ARG: $EXEC started"
|
||||
# Make sure it stayed up!
|
||||
/bin/sleep 1
|
||||
checkIfRunning
|
||||
if [ $RUNNING -eq 0 ]; then
|
||||
echo "$0 $ARG: $EXEC (pid $PID) quit unexpectedly"
|
||||
fi
|
||||
else
|
||||
echo "$0 $ARG: $EXEC could not be started"
|
||||
ERROR=3
|
||||
fi
|
||||
;;
|
||||
stop)
|
||||
if [ $RUNNING -eq 0 ]; then
|
||||
echo "$0 $ARG: $STATUS"
|
||||
continue
|
||||
fi
|
||||
if kill -15 $PID ; then
|
||||
echo "$0 $ARG: $EXEC stopped"
|
||||
else
|
||||
/bin/sleep 1
|
||||
if kill -9 $PID ; then
|
||||
echo "$0 $ARG: $EXEC stopped"
|
||||
else
|
||||
echo "$0 $ARG: $EXEC could not be stopped"
|
||||
ERROR=4
|
||||
fi
|
||||
fi
|
||||
# Make sure it really died!
|
||||
/bin/sleep 1
|
||||
checkIfRunning
|
||||
if [ $RUNNING -eq 1 ]; then
|
||||
echo "$0 $ARG: $EXEC (pid $PID) unexpectedly still running"
|
||||
fi
|
||||
;;
|
||||
restart)
|
||||
$0 stop start
|
||||
;;
|
||||
status)
|
||||
echo $STATUS
|
||||
;;
|
||||
*)
|
||||
echo "usage: $0 (start|stop|restart|status|help)"
|
||||
/bin/cat <<EOF
|
||||
|
||||
start - start $EXEC
|
||||
stop - stop $EXEC
|
||||
restart - stop and restart $EXEC if running or start if not running
|
||||
status - tell whether $EXEC is running or not
|
||||
help - this text
|
||||
|
||||
EOF
|
||||
ERROR=2
|
||||
;;
|
||||
|
||||
esac
|
||||
|
||||
done
|
||||
|
||||
exit $ERROR
|
||||
|
Loading…
Add table
Reference in a new issue