如何设置 FreeBSD 启动时运行的脚本?

如何设置 FreeBSD 启动时运行的脚本?

我正在使用 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如果该文件夹不存在,您可能需要创建该文件夹。

http://www.defcon1.org/html/rc-local.html了解详情。

答案3

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

相关内容