我想在启动时通过systemd
(操作系统是Fedora Core 16)从一些非root用户(例如michael
)执行我的脚本。
我不需要root权限 - 我只想在启动时和关机时在systemd
中的某些单位运行。我不想为此启用root
用户。我只想使用systemd
单位语法的强大功能来启动和观察我的进程(当然没有root访问权限)。有可能吗?
我在文档中找不到任何帮助。我只在systemd(1) -> DIRECTORIES -> "User unit directories"
找到了
$ pkg-config systemd --variable=systemduserunitdir
/usr/lib/systemd/user
但是/usr/lib/systemd/user
是:
drwxr-XR-X。 2根root
我无法想象如何将此目录用作非root用户...
答案 0 :(得分:3)
This Arch Linux document may help.
systemd为用户提供了运行systemd实例的能力 管理他们的会话和服务。这允许用户启动,停止, 启用和禁用在某些目录中找到的单位 systemd由用户运行。这对守护进程和其他方便 通常作为root或special之外的用户运行的服务 用户,例如mpd。
他们建议通过xinit启动系统--user实例,但我想你想要启动用户服务,无论用户是否登录。
我通常会通过在我的crontab中添加@reboot行来实现这一点。
如果需要启动服务器,@reboot会很有用 特定用户下的守护程序,用户无权访问 配置init以启动程序。
也许你可以通过@reboot !!!
启动systemd --user答案 1 :(得分:2)
为“ michael”创建一个用户systemd单位文件。
这是确保用户systemd进程在启动而不是登录时启动的魔力:
loginctl enable-linger michael