Mar*_*iae 38
取决于发行版。
如果您使用的是 Debian 衍生发行版,那么至少有两个合适的位置,/etc/rc.local 和 crontab。您可以以 root 身份调用 crontab,
crontab -e
Run Code Online (Sandbox Code Playgroud)
然后插入这一行
@reboot /home/my_name/bin/my_command
Run Code Online (Sandbox Code Playgroud)
哪里my_command是可执行文件 ( chmod 755 my_command)。
或者,您可以像这样放置一条线
/home/my_name/bin/my_command
Run Code Online (Sandbox Code Playgroud)
在 /etc/rc.local 中,这将最后执行。无论如何,请记住您使用的是 root 环境,而不是您的。同样出于这个原因,最好使用绝对路径。
如果您使用的是systemd发行版(Arch Linux、Fedora 19 等),第一个选项 (crontab) 仍然有效,而第二个选项 (/etc/rc.local) 不再存在。在这种情况下,您应该学习如何启动由 运行的服务systemctl,但这可能超出您对简单问题的讨价还价。
Kei*_*son 19
如果您的系统正在运行cron支持它的版本(特别是 Vixie cron),您可以@reboot在 cron 作业中使用。
这是它支持的 8 个特殊字符串之一。
引用crontab(5)手册页(来自我的 Ubuntu 12.04 系统):
可能会出现八个特殊字符串之一,而不是前五个字段:
string meaning
------ -------
@reboot Run once, at startup.
@yearly Run once a year, "0 0 1 1 *".
@annually (same as @yearly)
@monthly Run once a month, "0 0 1 * *".
@weekly Run once a week, "0 0 * * 0".
@daily Run once a day, "0 0 * * *".
@midnight (same as @daily)
@hourly Run once an hour, "0 * * * *".
Run Code Online (Sandbox Code Playgroud)
请注意,startup
@reboot是cron(8)守护进程启动的时间。特别是,它可能在某些系统守护程序或其他设施启动之前。这是由于机器的启动顺序。
这远不是在启动时运行某些东西的唯一方法,但它是一种替代方法。
几乎所有 Linux 变体(可以追溯到很久以前)都有一个在启动时运行的文件 /etc/rc.local - 您只需向其中添加命令即可。
也就是说,你甚至不需要这样做。“正确”的方法是修改/添加行 kernel.sysrq = 1 到 /etc/sysctl.conf
| 归档时间: |
|
| 查看次数: |
151872 次 |
| 最近记录: |