O serviço Systemd para ao fechar a última sessão SFTP/SSH

O serviço Systemd para ao fechar a última sessão SFTP/SSH

Recentemente, mudei meu servidor de uma máquina virtual para uma nova máquina.

Desde então, às vezes tenho o evento inexplicável de que meu servidor Teamspeak para (e reinicia automaticamente porque foi assim que o configurei) ao fechar a última sessão aberta de sftp / ssh que estava logado como o usuário em que o serviço é executado.

Então, basicamente, meu Linux envia um sinal de interrupção para meu servidor TS3 ao fechar a última conexão SSH aberta. Aqui está o log do journalctl ao travar:

Jun 30 10:48:03 ubuntu-server ts3server_startscript.sh[7505]: Starting the TeamSpeak 3 server
Jun 30 10:51:30 ubuntu-server systemd[1]: teamspeak.service: Control process exited, code=exited status=203
Jun 30 10:51:30 ubuntu-server systemd[1]: teamspeak.service: Unit entered failed state.
Jun 30 10:51:30 ubuntu-server systemd[1]: teamspeak.service: Failed with result 'exit-code'.
Jun 30 10:51:33 ubuntu-server systemd[1]: teamspeak.service: Service hold-off time over, scheduling restart.

Eu uso a seguinte configuração do SystemD:

[Unit]
Description=TeamSpeak 3 Server
After=network.target

[Service]
WorkingDirectory=/home/teamspeak/teamspeak3-server_linux_amd64/
User=teamspeak
Group=teamspeak
Type=forking
ExecStart=/home/teamspeak/teamspeak3-server_linux_amd64/ts3server_startscript.sh start inifile=ts3server.ini
ExecStop=/home/teamspeak/teamspeak3-server_inux_amd64/ts3server_startscript.sh stop
PIDFile=/home/teamspeak/teamspeak3-server_linux_amd64/ts3server.pid
RestartSec=3
Restart=always

[Install]
WantedBy=multi-user.target

Alguma ideia? não consigo explicar..

Responder1

Provavelmente relacionado com persistência conforme descritoaqui.

Solução:

sudo loginctl enable-linger <username>

informação relacionada