Ubuntu 16.04 systemd 用户服务异常

Ubuntu 16.04 systemd 用户服务异常

我已经启用并启动了用户服务(systemctl --user enable serviceName...等)。但是当我注销时,服务停止了。为什么?我之前在 Fedora 22 上创建过类似的用户服务,但是当我注销时它并没有停止。有没有什么解决方法?

答案1

可能更好:

systemd 用户实例在用户首次登录后启动,在用户最后一个会话关闭后终止。有时在启动后立即启动它,并在最后一个会话关闭后保持 systemd 用户实例运行可能会很有用,例如让某些用户进程在没有任何打开的会话的情况下运行。Lingering 就是为此目的而使用的。使用以下命令为特定用户启用 lingering:

# loginctl enable-linger username

https://wiki.archlinux.org/index.php/Systemd/User

答案2

Systemd 用户服务仅在用户会话期间有效。这意味着您必须登录才能成功运行用户服务。

在 Ubuntu 中,当您退出 X 和所有终端(TTY、本地和远程)时,您的会话结束。我假设 Fedora 为您保留了一个打开的用户会话。

对于 Ubuntu,我建议您创建一个系统级服务,然后告诉它以特定用户身份运行。您可以通过在文件的部分中设置User=和来执行此操作。如果您只想对该用户帐户拥有写访问权限,我建议您设置适当的文件权限。Group=[Service]

最后,如果你想让服务只在用户告诉它时启动,你可以使用说明摘自这篇 AU 帖子

相关内容