在 Ubuntu 15.04 上,我有这个文件:/usr/local/bin/myscript(这是我制作的脚本)。
如果我在我的帐户下运行此命令,它将以 root 用户身份执行我需要它执行的操作:sudo /usr/local/bin/myscript
我现在想让/usr/local/bin/myscript在机器启动时运行,但作为 root 用户(就像我运行 sudo 命令但不必输入任何密码)。这是如何在 Ubuntu 15.04 上完成的?
Jde*_*eBP 15
您使用的是 Ubuntu 15 版。您有 systemd。 /etc/rc.local
充其量是 systemd 中的一种向后兼容机制。正如下面超链接的 AskUbuntu 问题中的混乱所示,使用它可能会出错。所以制作一个合适的 systemd 服务单元。
您正在创建一个本地的、非系统的、非包的服务单元,因此单元文件将位于/etc/systemd/system/
该类型单元所在的位置。让我们称之为/etc/systemd/system/myscript.service
。它包含了:
[单元] 说明=user2580 的脚本 文档=https://unix.stackexchange.com/questions/202698/ [服务] 类型=简单 ExecStart=/usr/local/bin/myscript [安装] WantedBy=multi-user.target
如果您的脚本分叉“为了守护进程”,请阻止它这样做。那完全没有必要。
systemctl preset myscript.service
(作为超级用户)让它在引导时自动启动。systemctl start myscript.service
(以超级用户身份)手动启动它。systemctl status myscript.service
以查看其状态。请注意,这不会在能够与 X 服务器通信的上下文中执行您的脚本。它甚至可以在 X 服务器启动之前运行。但是你没有提到作为 X 客户端的任何要求,也没有提到像HOME
环境变量这样的新手的其他复杂性。无论如何,这些都是其他问题的主题。所以我就不说了。