我试图通过编写一些服务来更好地理解 systemd。
例如,我很难理解这两种服务之间的差异,我想确保我正确理解它们会更合适。
因此,例如我得到了 rtorrent 服务,定义为 rt 作为系统服务,我可以为用户 X、Y、Z 启用该服务,使用 sudo systemctl enable rt@userX.service
? ~ cat /etc/systemd/system/rt@.service
[Unit]
Description=rTorrent
Requires=network.target local-fs.target
[Service]
Type=forking
KillMode=none
User=%I
ExecStart=/usr/bin/tmux new-session -s rt -n rtorrent -d rtorrent
ExecStop=/usr/bin/tmux send-keys -t rt:rtorrent C-q
WorkingDirectory=/home/%I/
Restart=on-failure
[Install]
WantedBy=multi-user.target
Run Code Online (Sandbox Code Playgroud)
我以这种方式定义了保管箱:
? ~ cat /etc/systemd/user/dropbox@.service
[Service]
ExecStart=/bin/sh %h/.dropbox-dist/dropboxd
ExecReload=/bin/kill -HUP $MAINPID
[Install]
WantedBy=multi-user.target
Run Code Online (Sandbox Code Playgroud)
如果我理解得很好,对于许多用户来说,可以在用户级别启动/停止/启用/禁用 Dropbox 服务,即使该用户不是管理员。这是否意味着我可以作为 userX 为 userY 启用它?至于 rt 服务,只有管理员可以启用/启动/停止它......这是系统服务和用户之间的唯一区别吗?