记录一次诡异的Ubuntu Service自动停止的问题
2022-10-06
记录一次Ubuntu20下用户Service自动退出问题。
我在我的一台云服务器上使用ubuntu20
,并且通过在~/.config/systemd/user
目录下建立业务Service定义文件,并通过Systemctl --user
来管理Service。一直以来运行都很好,这种模式下不需要root用户即可管理相关服务,我很喜欢。但是这次在一台边缘网关上使用却遇到了问题。
问题现象是每隔一段时间,该服务就会自动退出,并且程序没有任何错误日志记录。我的服务定义如下:
1 | [Unit] |
我一直将解决问题的思路放在程序本身上,各种调试问题依旧存在。这就让我很疑惑,我在Service的定义里明确指明了Restart=always
,每次自动推出后,使用Systemctl --user status
查看,就只能查看到一堆Service Starting,Start Succeed,Service Stping的日志。让我百思不得其解。我不得不怀疑是Systemd
出了问题。
使用journalctl --user -xe
进行查看,发现了这么一条日志:
systemd[179819]: Stopped target Main User Target.
一查果然是罪魁祸首。
1 | The services where automatically terminated, after the user logged out. |
当Service定义中存在如下定义:WantedBy=multi-user.target
,当用户登出后,服务将自动停止。
解决办法也说明了,使用命令loginctl enable-linger username
即可解决,这一命令释义如下:
1 | enable-linger [USER…], disable-linger [USER…]¶ |
我的公众号