仅为特定用户启用服务 (UBUNTU)

仅为特定用户启用服务 (UBUNTU)
  1. 目前正在 Ubuntu 中编写一个服务单元文件,我希望为一个用户启用该服务用户A仅有的。该服务将在 UserA 登录时自动运行,但不会为其他用户运行。我怎样才能做到这一点?

下面是我放置在 /etc/system 中的单元文件

[Unit]
Description=Test unit

[Service]
ExecStart=/bin/sh -c 'echo test > /home/UserA/sysdworking'

[Install]
WantedBy=multi-user.target
  1. 这是常见做法吗?或者所有服务都应该是系统范围的?

答案1

您正在寻找的是系统用户单位。当您将单元文件放入 时~/.config/systemd/user,systemd 将在您登录时自动启动您的服务。

从上面的链接:

根据 /etc/pam.d/system-login 中的默认配置,pam_systemd 模块在用户首次登录时自动启动 systemd --user 实例。只要该用户还存在某个会话,该进程就会一直存在,并且一旦该用户的最后一个会话关闭,该进程就会被终止。当启用 #Automatic start-up of systemd 用户实例时,实例将在引导时启动并且不会被杀死。 systemd 用户实例负责管理用户服务,可用于运行守护进程或自动化任务,具有 systemd 的所有优点,例如套接字激活、计时器、依赖系统或通过 cgroup 进行严格的进程控制。

相关内容