我想echo 1 > /proc/sys/kernel/sysrq
在每次启动时运行简单的shell命令,以启用sysrq键。在启动时应该执行此操作,我应该在哪里放置脚本来执行此操作?
systemd
Arch Linux 等发行版上却没有。通过提及它们,我们可能会在野鹅追逐中发送Demetri。有时需要进行一些更新。
我想echo 1 > /proc/sys/kernel/sysrq
在每次启动时运行简单的shell命令,以启用sysrq键。在启动时应该执行此操作,我应该在哪里放置脚本来执行此操作?
systemd
Arch Linux 等发行版上却没有。通过提及它们,我们可能会在野鹅追逐中发送Demetri。有时需要进行一些更新。
Answers:
取决于发行版。
如果您使用的是Debian发行版,则至少有两个适当的位置:/etc/rc.local和crontab。您可以以root身份调用crontab,
crontab -e
然后插入这一行
@reboot /home/my_name/bin/my_command
my_command
可执行文件(chmod 755 my_command
)在哪里。
或者,您可以这样放置一条线
/home/my_name/bin/my_command
在/etc/rc.local中,这将最后执行。无论如何,请记住您使用的是root环境,而不是您的环境。同样由于这个原因,最好使用绝对路径。
如果使用systemd发行版(Arch Linux,Fedora 19等),则第一个选项(crontab)仍然有效,而第二个选项(/etc/rc.local)不再存在。在这种情况下,您应该学习如何启动systemctl
由来运行的服务,但这可能比您通过简单的问题讨价还价还多。
如果您的系统正在运行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 * * * *".
请注意,就c
@reboot
而言,启动是cron(8)守护程序启动的时间。特别是,可能是在某些系统守护程序或其他功能启动之前。这是由于计算机的启动顺序而引起的。
这远不是在启动时运行某些东西的唯一方法,而是另一种选择。