Jak ustawić skrypt, który będzie uruchamiany podczas uruchamiania w FreeBSD?

10

Korzystam z FreeBSD 9 i chcę stworzyć skrypt, który sprawdzi, czy kabel Ethernet jest podłączony, a jeśli tak, to się z nim połączy. Chcę ustawić go tak, aby działał przy każdym uruchomieniu komputera lub przy każdym logowaniu. Spojrzałem na moją książkę UNIX (jest dość przestarzała i dotyczy ogólnego systemu UNIX, a nie FreeBSD) i mówi, że mogę używać crontab, ale mogę to zrobić tylko po to, aby wszystko działało w określonych momentach, a nie kiedy się uruchamia. Czy ktoś może mi powiedzieć, jak mogę się tym zająć?

użytkownik23809
źródło

Odpowiedzi:

11

FreeBSD cronrozumie @rebootdyrektywę czasu, więc możesz naprawdę cronuruchomić skrypt podczas uruchamiania. Zamiast zwykłych 5 pól czasowych Twój crontabwpis może wyglądać następująco:

@reboot /path/to/script

Jeśli chcesz również uruchomić sprawdzanie podczas logowania, dodać wywołanie skryptu w pliku swoje powłoka wykonuje podczas logowania - to może być, w zależności od powłoki, ~/.login, ~/.bash_login, itd.

D_Bye
źródło
4

Na FreeBSD 11 dla ARMv6 (Raspberry Pi) nie mogłem zmusić @rebootdyrektywy crontab do pracy dla użytkownika root, a /etc/rc.localmetoda „dodaj skrypty do pliku” została zastąpiona przez mechanizm, który automatycznie uruchamia skrypty znajdujące się w /usr/local/etc/rc.d/.

Innymi słowy, aby uruchomić skrypt podczas rozruchu na FreeBSD 11 (lub 10?) I prawdopodobnie nowszy, umieść w tym folderze skrypt wykonywalny powłoki z rozszerzeniem .sh, aby został on uruchomiony podczas rozruchu:

/usr/local/etc/rc.d/

Może być konieczne utworzenie rc.dfolderu, jeśli nie istnieje.

Szczegółowe informacje można znaleźć na stronie http://www.defcon1.org/html/rc-local.html .

Steve HHH
źródło
3

Innym rozwiązaniem dla skryptu uruchamiania byłoby /etc/rc.local.

łukowaty
źródło
1
Chociaż man rcmówi „Zazwyczaj w dzisiejszych czasach zamiast rc.local używany jest mechanizm /usr/local/etc/rc.d/, ale jeśli chcesz użyć rc.local, nadal jest on obsługiwany. W takim przypadku powinien on źródła / etc / rc.conf i zawierają dodatkowy niestandardowy kod startowy dla twojego systemu. Najlepszym sposobem obsługi rc.local jest jednak podzielenie go na skrypty rc.d / style i umieszczenie ich w katalogu / usr / local / etc / rc .re/."
zezollo