我如何设置一个脚本,它将在FreeBSD中启动时运行?


10

我正在使用FreeBSD 9,我想编写一个脚本来检查是否连接了以太网电缆,如果连接了以太网电缆,请检查它。我想设置它以便它在计算机启动或登录时都可以运行。我看了我的UNIX书籍(它已经过时了,并且适用于一般UNIX,而不是专门针对FreeBSD),它说我可以使用crontab,但我只能这样做以使事情在某些时间运行,而不是在启动时运行。有人可以告诉我如何做到这一点吗?

Answers:


11

FreeBSD cron了解@reboottime指令,因此您确实可以cron在启动时执行脚本。您的crontab输入可能会像下面这样而不是通常的5个时间字段:

@reboot /path/to/script

如果你还想在登录时,该文件在登录时调用脚本添加你的shell执行运行检查-这可能是,这取决于你的shell, ,~/.login~/.bash_login等。


4

在用于ARMv6的FreeBSD 11(Raspberry Pi)上,我无法让crontab @reboot指令为root用户使用,并且“将脚本添加到/etc/rc.local文件”方法已被自动运行位于中的脚本的机制所取代/usr/local/etc/rc.d/

换句话说,要在FreeBSD 11(或10?)或更高版本上的启动时运行脚本,请将带有.sh扩展名的可执行shell脚本放在此文件夹中,以使其在启动时执行:

/usr/local/etc/rc.d/

如果该rc.d文件夹不存在,则可能需要创建该文件夹。

有关详细信息,请参见http://www.defcon1.org/html/rc-local.html


3

启动脚本的另一种解决方案是/etc/rc.local


1
尽管man rc说“通常情况下,这几天使用/usr/local/etc/rc.d/机制而不是rc.local,但是如果您想使用rc.local,它仍然受支持。在这种情况下,它应该以/ etc / rc.conf并包含用于系统的其他自定义启动代码,但是处理rc.local的最佳方法是将其分离为rc.d /样式脚本,并将其放置在/ usr / local / etc / rc下.d /。”
zezollo '16
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.