So erstellen Sie das Startskript init.d

8

Ich möchte beim Start nur einen sehr einfachen Befehl ausführen. Wie kann ich das machen? Ich habe Google durchsucht und es hat sehr komplizierte Beispiele, aber ich brauche nur dieses Skript beim Start auszuführen. Wie kann ich das machen?

Skript

./init.d/opscenter-agent start

sed
quelle

Antworten:

8

Wenn Sie dies als tun möchten Systemstart (im Gegensatz zu , wenn Sie in Ihrem Computer anmelden), legen Sie die Befehle , die Sie laufen in möchten /etc/rc.local.

Siehe [Ubuntu] Ausführen eines Skripts beim Starten und Herunterfahren .

Li-aung Yip
quelle
Das OP hat speziell nach einem init.d-Skript gefragt, was dies wirklich nicht ist. Es ist ein verwandter Ansatz, hauptsächlich aufgrund dessen, wie wir es vor etwa 30 Jahren getan haben, und dank neuerer Ansätze wie init.d. (was wiederum zugunsten von systemds / etc / init veraltet ist).
mc0e
3

Wenn das Skript nicht von root ausgeführt werden muss, können Sie Folgendes tun:

1) Öffnen Sie "Startup Applications Preferences" ( Alt+ F2und fügen Sie ein gnome-session-propertiesund drücken Sie Enter),

2) Drücken Sie "Hinzufügen" und wählen Sie Ihr Skript aus:

Geben Sie hier die Bildbeschreibung ein

Geben Sie hier die Bildbeschreibung ein


Wenn Sie keine grafische Umgebung verwenden, können Sie die Befehle direkt vor die Zeile exit 0in dieser Datei setzen : /etc/rc.local. (Um es zu bearbeiten, fügen Sie es einfach am Terminal ein sudo nano /etc/rc.local.

Desgua
quelle
Nicht gut, da ich Putty verwende, um den Debian-Server zu verwalten, keine GUI :)
Sed
Sie können die Befehle (oder einen Link zu Ihrem Skript) in diese Datei /etc/rc.local
einfügen
Dies ist eine Alternative zu dem vom OP angeforderten Skript init.d.
mc0e
1

Der Ansatz /etc/rc.local führt beim Start einen sehr einfachen Befehl aus, ist jedoch kein init.d-Skriptansatz und in verschiedener Hinsicht minderwertig. (Das spielt möglicherweise keine Rolle, abhängig von Ihrem Zweck).

Im Gegensatz zu init.d-Skripten bieten rc.local-Befehle keine Standardschnittstelle zum Starten und Stoppen eines Prozesses, und sie bieten keinen großen Einfluss darauf, wann sie im Startprozess ausgeführt werden. Sie können im /etc/init.d/rc.localSkript sehen, dass dies nach allem anderen ausgeführt wird ( Required-Start: $all).

Wenn ein init.d-Skript wirklich das ist, was Sie wollen, funktioniert es normalerweise gut, ein vorhandenes Skript zu greifen, es zu kopieren und zu bearbeiten, obwohl einige der vorhandenen Skripte komplexer sind als Sie möchten. Da die meisten init.d-Skripte so starten, stellt ubuntu zu diesem Zweck /etc/init.d/skeleton zur Verfügung.

Auch einen Blick wert:

  • /etc/init.d/motdist ein minimales Beispiel, das beim Start etwas ausführt, aber mit der Required-StartParametereinstellung, wann es passieren sollte.
  • /etc/init.d/cronist ein einfacher Ausgangspunkt für einen Daemon-Prozess (geben oder nehmen Sie die parse_environmentFunktion, die Sie wahrscheinlich nicht benötigen).
mc0e
quelle