如何在 FreeBSD 上启动时运行简单的命令?

如何在 FreeBSD 上启动时运行简单的命令?

我需要在使用 FreeBSD 的计算机上启动时运行命令:

cd /home/portal
mv portal.sqlite corrupt_portal.sqlite

这显然不是守护进程或服务,只是每次启动时的一次性命令。

我尝试将 .sh 文件放入 /usr/local/etc/rc.d/ 中,#!/bin/bash但它没有执行任何操作,我还尝试简单地编写“touch testfile 如果我手动运行两个版本,它们可以正常工作”。

我在这里缺少什么?

答案1

遥控(8)脚本负责运行自动引导过程,手册的示例部分给出了目录的简单模板/etc/rc.d/。阅读rc.subr(8)有关编写启动脚本的进一步指导的手册页。

/etc/rc.local然而,自动引导过程的最后阶段之一是读取名为(如果存在)的脚本文件。该文件不需要特殊的格式或关键字,或执行位集。

rc(8)手册页:

通常,现在使用 /usr/local/etc/rc.d/ 机制代替 rc.local,但如果您想使用 rc.local,它仍然受支持。

答案2

最简单的方法是将该命令放入crontab.
您可以放置​​特殊标记,而不是通常用星号填充的前五个字段@reboot

@reboot root:wheel /path/to/the/command [args ...] 

每次系统重新启动时都会启动此命令。

相关内容