68 lines
1.3 KiB
Bash
68 lines
1.3 KiB
Bash
#!/bin/bash
|
|
# Start/stop/restart the AdGuard Home
|
|
|
|
name="AdGuardHome"
|
|
user="dnsproxy"
|
|
workdir=/var/lib/"$name"
|
|
configdir=/etc/"$name"
|
|
pidfiles=/run/"$name"
|
|
mkdir -p $pidfiles $workdir $configdir
|
|
chmod 0700 $pidfiles $workdir
|
|
if /bin/id "$user" &>/dev/null; then
|
|
chown $user:$user $pidfiles
|
|
chown -R $user:$user $workdir
|
|
chown -R $user:$user $configdir
|
|
daemon="/usr/bin/daemon --name=$name --pidfiles=$pidfiles --user=$user"
|
|
else
|
|
daemon="/usr/bin/daemon --name=$name --pidfiles=$pidfiles"
|
|
fi
|
|
|
|
start_AdGuardHome() {
|
|
if $daemon --running; then
|
|
echo "$name is already running"
|
|
elif [ ! -f /etc/AdGuardHome/AdGuardHome.yaml ];then
|
|
/usr/sbin/AdGuardHome --config /etc/AdGuardHome/AdGuardHome.yaml \
|
|
--work-dir $workdir
|
|
else
|
|
echo "Starting $name..."
|
|
$daemon -- /usr/sbin/AdGuardHome --config /etc/AdGuardHome/AdGuardHome.yaml \
|
|
--work-dir $workdir --no-check-update
|
|
fi
|
|
}
|
|
|
|
stop_AdGuardHome() {
|
|
if $daemon --running; then
|
|
echo "Stopping $name..."
|
|
$daemon --stop
|
|
else
|
|
echo "$name is not running"
|
|
fi
|
|
}
|
|
|
|
restart_AdGuardHome() {
|
|
stop_AdGuardHome
|
|
sleep 1
|
|
start_AdGuardHome
|
|
}
|
|
|
|
status_AdGuardHome() {
|
|
$daemon --running --verbose
|
|
}
|
|
|
|
case "$1" in
|
|
'start')
|
|
start_AdGuardHome
|
|
;;
|
|
'stop')
|
|
stop_AdGuardHome
|
|
;;
|
|
'restart')
|
|
restart_AdGuardHome
|
|
;;
|
|
'status')
|
|
status_AdGuardHome
|
|
;;
|
|
*)
|
|
echo "usage $0 start|stop|restart|status"
|
|
esac
|