service sai após ssh disconnect

0

O serviço funciona perfeitamente se eu não estiver logado, mas se eu me conectar com o ssh e então desconectar o serviço será terminado. O serviço pertence ao usuário a quem eu ssh. Este é o meu arquivo ts3.service atual:

[Unit]
Description=TeamSpeak3Server

[Service]
User=user1
Group=staff
Type=forking
WorkingDirectory=/usr/local/bin/teamspeak3-server_linux_amd64
ExecStart=/usr/local/bin/teamspeak3-server_linux_amd64/ts3server_startscript.sh start
ExecStop=/usr/local/bin/teamspeak3-server_linux_amd64/ts3server_startscript.sh stop
PIDFile=/usr/local/bin/teamspeak3-server_linux_amd64/ts3server.pid
RestartSec=5
Restart=always
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target

Eu já tentei alterar o ExecStart para

ExecStart=/usr/bin/nohup /usr/local/bin/teamspeak3-server_linux_amd64/ts3server_startscript.sh start

Outros serviços como o openvpn sobrevivem ao logout do ssh. Após a reconexão, o status do processo do sistema lê:

active (exited)

enquanto o status normal é

active (running)

A causa do problema pode ser que o script que eu executo chama outro script que é morto se o shell enviar medições de sighup? Obrigado pelas suas respostas.

Editar:

a parte importante do ts3server_startscript.sh é a seguinte:

COMMANDLINE_PARAMETERS="${2}"
D1=$(readlink -f "$0")
BINARYPATH="$(dirname "${D1}")"
cd "${BINARYPATH}"
LIBRARYPATH="$(pwd)"
BINARYNAME="ts3server"

if [ -e "$BINARYNAME" ]; then
  if[ -x "$BINARYNAME" ]; then
  export LD_LIBRARY_PATH="${LIBRARYPATH}:${LD_LIBARY_PATH}"
  "./${BINARYNAME}" ${COMMANDLINE_PARAMETERS} > /dev/null &
  PID=$!
  ps -p ${PID} > /dev/null 2>&1
  if [ "$?" -ne "0" ]; then
      echo "..."
  else
      echo $PID > ts3server.pid
  fi

Então, se eu interpretar corretamente, o servidor é iniciado no console por

     "./${BINARYNAME}" ${COMMANDLINE_PARAMETERS} > /dev/null &
    
por Beny Benz 14.06.2018 / 15:39

0 respostas