关闭最后一个 SFTP/SSH 会话时 Systemd 服务停止

关闭最后一个 SFTP/SSH 会话时 Systemd 服务停止

我最近将我的服务器从虚拟机移到了新机器。

从那时起,我有时会遇到无法解释的事件,即当关闭以运行该服务的用户身份登录的 sftp / ssh 的最后一个打开的会话时,我的 Teamspeak 服务器会停止(并且会自动重新启动,因为这是我的配置方式)。

因此,基本上,当关闭最后一个打开的 ssh 连接时,我的 linux 会向我的 TS3 服务器发送一个终止信号。以下是崩溃时的 journalctl 日志:

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.

我使用以下 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

有什么想法吗?我无法解释。

答案1

可能与描述的挥之不去有关这里

解决方案:

sudo loginctl enable-linger <username>

相关内容