Wie lege ich ein Skript fest, das beim Start in FreeBSD ausgeführt wird?

10

Ich verwende FreeBSD 9 und möchte ein Skript erstellen, das überprüft, ob ein Ethernet-Kabel angeschlossen ist, und wenn ja, eine Verbindung dazu herstellt. Ich möchte es so einstellen, dass es ausgeführt wird, wenn der Computer startet oder wenn ich mich anmelde. Ich habe mir mein UNIX-Buch angesehen (es ist ziemlich veraltet und ist für allgemeines UNIX, nicht speziell FreeBSD) und es sagt, dass ich es verwenden kann crontab, aber ich kann dies nur tun, um die Dinge zu bestimmten Zeiten zum Laufen zu bringen, nicht wenn es startet. Kann mir bitte jemand sagen, wie ich dazu komme?

user23809
quelle

Antworten:

11

FreeBSDs cronverstehen die @rebootZeitanweisung, sodass Sie cronIhr Skript tatsächlich beim Start ausführen können. Anstelle der üblichen 5 crontabZeitfelder könnte Ihr Eintrag folgendermaßen aussehen:

@reboot /path/to/script

Wenn Sie die Prüfung auch ausführen möchten , wenn Sie sich anmelden, einen Aufruf an das Skript in der Datei der Shell ausführt bei der Anmeldung hinzuzufügen - dies könnte sein, abhängig von der Shell, ~/.login, ~/.bash_loginetc.

D_Bye
quelle
4

Unter FreeBSD 11 für ARMv6 (Raspberry Pi) konnte ich die crontab- @rebootDirektive nicht für den Root-Benutzer verwenden, und die /etc/rc.localMethode "Skripte zur Datei hinzufügen " wurde durch einen Mechanismus ersetzt, der automatisch Skripte ausführt, die sich in befinden /usr/local/etc/rc.d/.

Mit anderen Worten, um ein Skript beim Booten unter FreeBSD 11 (oder 10?) Und wahrscheinlich neuer auszuführen, platzieren Sie ein ausführbares Shell-Skript mit der Erweiterung .sh in diesem Ordner, damit es beim Booten ausgeführt wird:

/usr/local/etc/rc.d/

Möglicherweise müssen Sie den rc.dOrdner erstellen, wenn er nicht vorhanden ist.

Weitere Informationen finden Sie unter http://www.defcon1.org/html/rc-local.html .

Steve HHH
quelle
3

Eine andere Lösung für das Startskript wäre /etc/rc.local.

gebogen
quelle
1
Obwohl man rc"Normalerweise wird heutzutage der Mechanismus /usr/local/etc/rc.d/ anstelle von rc.local verwendet, aber wenn Sie rc.local verwenden möchten, wird er weiterhin unterstützt. In diesem Fall sollte er source / etc / rc.conf und enthalten zusätzlichen benutzerdefinierten Startcode für Ihr System. Der beste Weg, mit rc.local umzugehen, besteht jedoch darin, ihn in rc.d / style-Skripte aufzuteilen und unter / usr / local / etc / rc abzulegen .d /. "
Zezollo