systemd не может выполнять файлы - PullRequest
0 голосов
/ 14 марта 2020

Я написал пример сценария для запуска 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 разрешений

...