slackbuilds_ponce/network/nordvpn/rc.nordvpn
Reza Talebi 00ea6157e4
network/nordvpn: Updated for version 3.12.5.
Signed-off-by: Willy Sudiarto Raharjo <willysr@slackbuilds.org>
2022-04-09 15:45:46 +07:00

118 lines
2 KiB
Bash

#!/usr/bin/env bash
# Short-Description: Protect your privacy online and access media content with no regional restrictions. Strong encryption and no-log policy with 3000+ servers in 60+ countries.
### END INIT INFO
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin
BASE=nordvpn
DAEMON=/usr/sbin/${BASE}d
PID=/var/run/$BASE.pid
SOCK=/run/$BASE/${BASE}d.sock
SOCKDIR=/run/$BASE
create_socket_dir() {
if [[ -d $SOCKDIR ]]; then
return
fi
mkdir -m 0770 $SOCKDIR
chown root:$BASE $SOCKDIR
}
checkuser() {
status=0
for u in $(who | awk '{print $1}' | sort | uniq)
do
if [ "$u" == "$1" ]; then
return 0
fi
done
return 1
}
#
# Function that starts the daemon
#
nordvpnd_start()
{
checkuser
create_socket_dir
rm -rf $SOCK
if [ -s $PID ]; then
echo "$BASE is already running: $(cat $PID)"
exit 1
fi
if [ -x $DAEMON ]; then
echo "Starting $BASE"
sleep 1
# $DAEMON start-stop-daemon --start --quiet -g "nordvpn" --pidfile $PID --exec $DAEMON
$DAEMON > /dev/null &
pidof $DAEMON > $PID
sleep 10
if [ -S "$SOCK" ]; then
echo "$BASE has been started."
else
echo "$BASE failed to start. Please restart the daemon."
fi
fi
}
#
# Function that stops the daemon
#
nordvpnd_stop()
{
if [ -s $PID ]; then
echo "Stopping $BASE"
sleep 1
kill $(cat $PID)
rm -rf $PID $SOCK
sleep 1
echo "$BASE has been stopped."
else
echo "$BASE is not running."
fi
}
#
# Function that restarts the daemon
#
nordvpnd_restart()
{
nordvpnd_stop
sleep 1
nordvpnd_start
}
#
# Function that shows the current status of the daemon
#
nordvpnd_status()
{
if [ -s $PID ]; then
echo "$BASE is running: $(cat $PID)"
else
echo "$BASE is not running."
fi
}
case "$1" in
start)
nordvpnd_start
;;
stop)
nordvpnd_stop
;;
restart)
nordvpnd_restart
;;
status)
nordvpnd_status
;;
*)
echo $"Usage: $0 {start|stop|restart|status}"
exit 1
;;
esac