在用户登录时启动 systemctl 服务

dai*_*isy 7 ubuntu systemd

我正在尝试创建一个在用户登录时运行的服务。

作为非 root 用户,我创建了一个文件:

> cat ~/.local/share/systemd/user/voodoo.service

[Unit]
Description=User service test

[Service]
RemainAfterExit=yes
Type=simple
ExecStart=/bin/bash -c "touch /tmp/ok123"

[Install]
WantedBy=default.target
Run Code Online (Sandbox Code Playgroud)

但是,systemctl 无法识别,

> systemctl --user restart voodoo.service
Failed to connect to bus: No such file or directory
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

and*_*tsh 8

我认为你必须先enable服务:

systemctl --user enable voodoo.service
Created symlink /home/andreatsh/.config/systemd/user/default.target.wants/voodoo.service ? /home/andreatsh/.local/share/systemd/user/voodoo.service
Run Code Online (Sandbox Code Playgroud)

如您所见,这只是在适当的文件夹中创建一个符号链接。然后我运行:

systemctl --user restart voodoo.service 
Run Code Online (Sandbox Code Playgroud)

服务很好。