我正在使用 FreeBSD 9,我想编写一个脚本来检查以太网电缆是否已连接,如果是,则连接到它。我想设置它,以便它在机器启动时或每次登录时运行。我查看了我的 UNIX 书(它非常过时,适用于一般 UNIX,而不是专门针对 FreeBSD),它说我可以使用crontab,但我只能这样做以使事情在特定时间运行,而不是在启动时运行。有人可以告诉我如何做到这一点吗?
答案1
FreeBSDcron
理解@reboot
时间指令,因此您确实可以cron
在启动时执行脚本。您的crontab
条目可能如下所示,而不是通常的 5 个时间字段:
@reboot /path/to/script
如果您还想在登录时运行检查,请在您的 shell 在登录时执行的文件中添加对脚本的调用 - 这可能取决于您的 shell、、、~/.login
等~/.bash_login
。
答案2
在适用于 ARMv6 (Raspberry Pi) 的 FreeBSD 11 上,我无法让 crontab@reboot
指令为 root 用户工作,并且“将脚本添加到文件/etc/rc.local
”方法已被自动运行位于/usr/local/etc/rc.d/
.
换句话说,要在 FreeBSD 11(或 10?)以及可能更新的版本上运行脚本,请将可执行 shell 脚本放置在.sh在此文件夹中添加扩展名以使其在启动时执行:
/usr/local/etc/rc.d/
rc.d
如果该文件夹不存在,您可能需要创建该文件夹。
答案3
启动脚本的另一个解决方案是/etc/rc.local
.