mirror of
https://github.com/lwch/natpass.git
synced 2024-04-21 12:41:54 +00:00
115 lines
2.5 KiB
Bash
Executable File
115 lines
2.5 KiB
Bash
Executable File
#!/bin/sh
|
|
#
|
|
# chkconfig: 2345 12 88
|
|
# description: natpass client
|
|
### BEGIN INIT INFO
|
|
# Provides: lwch748@gmail.com
|
|
# Required-Start: $network
|
|
# Required-Stop:
|
|
# Default-Start: 2 3 4 5
|
|
# Default-Stop: 0 1 6
|
|
# Short-Description: np-cli
|
|
# Description: natpass client
|
|
### END INIT INFO
|
|
|
|
NAME=np-cli
|
|
WORKDIR=/opt/natpass
|
|
DAEMON=/opt/natpass/bin/$NAME
|
|
CONFIG=/opt/natpass/conf/client.yaml
|
|
PIDFILE=/var/run/$NAME.pid
|
|
|
|
wait_for_pid () {
|
|
try=0
|
|
while test $try -lt 35 ; do
|
|
case "$1" in
|
|
'created')
|
|
if [ -f "$2" ] ; then
|
|
try=''
|
|
break
|
|
fi
|
|
;;
|
|
'removed')
|
|
if [ ! -f "$2" ] ; then
|
|
try=''
|
|
break
|
|
fi
|
|
;;
|
|
esac
|
|
|
|
echo -n .
|
|
try=`expr $try + 1`
|
|
sleep 1
|
|
done
|
|
}
|
|
|
|
case "$1" in
|
|
start)
|
|
echo -n "Starting $NAME "
|
|
cd $WORKDIR
|
|
nohup $DAEMON -d -pid $PIDFILE -u nobody -conf $CONFIG > /dev/null 2>&1 &
|
|
if [ "$?" != 0 ] ; then
|
|
echo " failed"
|
|
exit 1
|
|
fi
|
|
wait_for_pid created $PIDFILE
|
|
if [ -n "$try" ] ; then
|
|
echo " failed"
|
|
exit 1
|
|
else
|
|
echo " done"
|
|
fi
|
|
;;
|
|
stop)
|
|
echo -n "Gracefully shutting down $NAME "
|
|
if [ ! -r $PIDFILE ] ; then
|
|
echo "warning, no pid file found - $NAME is not running ?"
|
|
exit 1
|
|
fi
|
|
kill -QUIT `cat $PIDFILE`
|
|
wait_for_pid removed $PIDFILE
|
|
if [ -n "$try" ] ; then
|
|
echo " failed. Use force-quit"
|
|
exit 1
|
|
else
|
|
echo " done"
|
|
fi
|
|
;;
|
|
status)
|
|
if [ ! -r $PIDFILE ] ; then
|
|
echo "$NAME is stopped"
|
|
exit 0
|
|
fi
|
|
|
|
PID=`cat $PIDFILE`
|
|
if ps -p $PID | grep -q $PID; then
|
|
echo "$NAME (pid $PID) is running..."
|
|
else
|
|
echo "$NAME dead but pid file exists"
|
|
fi
|
|
;;
|
|
force-quit)
|
|
echo -n "Terminating $NAME "
|
|
if [ ! -r $PIDFILE ] ; then
|
|
echo "warning, no pid file found - $NAME is not running ?"
|
|
exit 1
|
|
fi
|
|
kill -TERM `cat $PIDFILE`
|
|
wait_for_pid removed $PIDFILE
|
|
if [ -n "$try" ] ; then
|
|
echo " failed"
|
|
exit 1
|
|
else
|
|
echo " done"
|
|
fi
|
|
;;
|
|
restart)
|
|
$0 stop
|
|
$0 start
|
|
;;
|
|
*)
|
|
echo "Usage: $0 {start|stop|status|force-quit|restart}"
|
|
exit 1
|
|
;;
|
|
esac
|
|
|
|
exit $? |