60 lines
1.1 KiB
Bash
60 lines
1.1 KiB
Bash
|
#!/bin/bash
|
||
|
|
||
|
server_name="/usr/bin/myserver"
|
||
|
log_path="/var/log/myserver.log"
|
||
|
pid_file="/var/run/myserver.pid"
|
||
|
|
||
|
ip=127.0.0.1 # default ip
|
||
|
port=80 # default port
|
||
|
|
||
|
cmd=
|
||
|
case $1 in
|
||
|
start) {
|
||
|
echo "Starting server..."
|
||
|
cmd="start"
|
||
|
} ;;
|
||
|
stop) {
|
||
|
echo "Stopping server..."
|
||
|
cmd="stop"
|
||
|
} ;;
|
||
|
*) (
|
||
|
echo "Usage: $0 start|stop options"
|
||
|
echo "Options: ip, port"
|
||
|
) ;;
|
||
|
esac
|
||
|
|
||
|
if [[ "$cmd" == "" ]]; then
|
||
|
exit 1
|
||
|
fi
|
||
|
|
||
|
shift
|
||
|
|
||
|
TEMP=`getopt -o i:p: --long ip:,port: -- "$@"`
|
||
|
|
||
|
# Note the quotes around `$TEMP': they are essential!
|
||
|
eval set -- "$TEMP"
|
||
|
|
||
|
while true ; do
|
||
|
case "$1" in
|
||
|
-i|--ip) ip=$2 ; echo "ip=$ip" ; shift 2 ;;
|
||
|
-p|--port) port=$2 ; echo "port=$port" ; shift 2 ;;
|
||
|
--) shift ; break ;;
|
||
|
*) echo "Internal error!" ; exit 1 ;;
|
||
|
esac
|
||
|
done
|
||
|
|
||
|
if [[ "$cmd" == "start" ]]; then
|
||
|
$myserver $pid_file $ip $port $log_path # в зависимости от интерфейса сервера
|
||
|
if [[ "$?" == "0" ]]; then
|
||
|
echo "Start SUCCESS =)"
|
||
|
else
|
||
|
echo "Start FAILED =("
|
||
|
fi
|
||
|
else
|
||
|
if [[ "$cmd" == "stop" ]]; then
|
||
|
pid=`cat $pid_file`
|
||
|
kill -s INT "${pid}"
|
||
|
echo "Server has stopped"
|
||
|
fi
|
||
|
fi
|