Я написал пример сценария для запуска SoftEther VPN Server на Fedora 31, но столкнулся с проблемой:
Сценарий:
#!/bin/sh
# chkconfig: 2345 99 01
# description: SoftEther VPN Server
DAEMON="/usr/local/vpnserver/vpnserver"
LOCK="/var/lock/subsys/vpnserver"
start_service(){
$DAEMON start
touch $LOCK
}
stop_service(){
$DAEMON stop
rm $LOCK
}
echo "Executed as User $(whoami)"
if [[ -f $DAEMON ]]; then
echo "File $DAEMON founded"
else
echo "File $DAEMON does not exit or not executable"
exit 1
fi
if [[ -x $DAEMON ]]; then
echo "FIle $DAEMON is executable"
else
echo "File $DAEMON is not executable"
chmod +x $DAEMON
fi
case "$1" in
start)
start_service
;;
stop)
stop_service
;;
restart)
stop_service
sleep 3
start_service
;;
status)
if [ -e $LOCK ]; then
echo "SoftEther VPN Server is UP"
else
echo "SoftEther VPN Server is OFF"
fi
;;
*)
echo "Usage: $0 {start|stop|restart|status}"
exit 1
esac
exit 0
Этот файл сохраняется в /etc/init.d/vpnserver
Когда я выполняю скрипт с командой sudo service vpnserver ...
, кажется, что все работает ...
Но после того, как я добавляю скрипт в chkconfig
через sudo chkconfig --add vpnserver
и перезагружаю сервер на systemctl
, я получаю следующее:
● vpnserver.service - SYSV: SoftEther VPN Server
Loaded: loaded (/etc/rc.d/init.d/vpnserver; generated)
Active: active (exited) since Sat 2020-03-14 12:46:57 EET; 14min ago
Docs: man:systemd-sysv-generator(8)
Process: 697 ExecStart=/etc/rc.d/init.d/vpnserver start (code=exited, status=0/SUCCESS)
CPU: 14ms
бер 14 12:47:01 example.com vpnserver[697]: Executed as User root
бер 14 12:47:01 example.com vpnserver[697]: File /usr/local/vpnserver/vpnserver founded
бер 14 12:47:01 example.com vpnserver[697]: File /usr/local/vpnserver/vpnserver is not executable
бер 14 12:47:01 example.com vpnserver[697]: /etc/rc.d/init.d/vpnserver: line 8: /usr/local/vpnserver/vpnserver: Permission denied
бер 14 12:46:56 example.com systemd[1]: Starting SYSV: SoftEther VPN Server...
бер 14 12:46:57 example.com systemd[1]: Started SYSV: SoftEther VPN Server.
В то же время я получил файл, созданный по пути $ LOCK, что неверно ...
Все файлы в папке /usr/local/vpnserver
имеют chmod 777
разрешений