Как мне установить скрипт, который будет запускаться при запуске во FreeBSD?

10

Я использую FreeBSD 9 и хочу создать скрипт, который будет проверять, подключен ли кабель Ethernet и, если да, подключается к нему. Я хочу настроить его так, чтобы он работал всякий раз, когда машина запускается, или всякий раз, когда я вхожу в систему. Я посмотрел мою книгу по UNIX (она довольно устарела и предназначена для общего UNIX, а не для FreeBSD), и там написано, что я могу использовать crontab, но я могу сделать это только для того, чтобы все работало в определенное время, а не при запуске. Может кто-нибудь сказать, пожалуйста, как я могу это сделать?

user23809
источник

Ответы:

11

FreeBSD cronпонимает @rebootдирективу времени, так что вы действительно можете cronвыполнить свой скрипт при запуске. Вместо обычных 5 временных полей ваша crontabзапись может выглядеть так:

@reboot /path/to/script

Если вы хотите также , чтобы запустить проверку , когда вы войти, добавьте вызов скрипта в файле вашей оболочки выполняет при входе в системе - это может быть, в зависимости от оболочки, ~/.login, ~/.bash_loginи т.д.

D_Bye
источник
4

В FreeBSD 11 для ARMv6 (Raspberry Pi) я не смог заставить @rebootдирективу crontab работать для пользователя root, а метод «добавить сценарии в /etc/rc.localфайл» был заменен механизмом, который автоматически запускает сценарии, расположенные в /usr/local/etc/rc.d/.

Другими словами, чтобы запустить скрипт при загрузке во FreeBSD 11 (или 10?) И, возможно, новее, поместите в эту папку исполняемый скрипт оболочки с расширением .sh, чтобы он выполнялся при загрузке:

/usr/local/etc/rc.d/

Вам может понадобиться создать rc.dпапку, если она не существует.

См. Http://www.defcon1.org/html/rc-local.html для получения подробной информации.

Стив ХХХ
источник
3

Другое решение для запуска скрипта будет /etc/rc.local.

Arved
источник
1
Хотя man rcговорит "Как правило, в наши дни вместо rc.local используется механизм /usr/local/etc/rc.d/, но если вы хотите использовать rc.local, он все еще поддерживается. В этом случае он должен использовать источник / etc / rc.conf и содержат дополнительный пользовательский код запуска для вашей системы. Однако лучший способ обработки rc.local - это разделить его на скрипты rc.d / style и поместить их в / usr / local / etc / rc .d / «.
Зезолло