GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie kann ich einen Befehl nach dem Booten ausführen?

Hängt von Distributionen ab.

Wenn Sie sich auf von Debian abgeleiteten Distributionen befinden, gibt es mindestens zwei richtige Orte, /etc/rc.local und crontab. Sie können crontab als root aufrufen,

   crontab -e

und dann diese Zeile einfügen

   @reboot /home/my_name/bin/my_command

wobei my_command ist eine ausführbare Datei (chmod 755 my_command ).

Alternativ können Sie auch eine Zeile wie diese platzieren

   /home/my_name/bin/my_command

in /etc/rc.local, und diese wird zuletzt ausgeführt. Denken Sie auf jeden Fall daran, dass Sie die Root-Umgebung verwenden, nicht Ihre. Auch aus diesem Grund ist es am besten, absolute Pfade zu verwenden.

Wenn Sie sich auf einem systemd befinden distro (Arch Linux, Fedora 19,...) ist die erste Option (crontab) noch gültig, während die zweite (/etc/rc.local) nicht mehr existiert. In diesem Fall sollten Sie lernen, wie Sie einen Dienst starten, der von systemctl ausgeführt wird , aber das ist vielleicht mehr, als Sie mit Ihrer einfachen Frage erwartet haben.


Wenn Ihr System eine Version von cron ausführt der es unterstützt (insbesondere Vixie cron), können Sie @reboot verwenden in einem Cron-Job.

Dies ist eine von 8 speziellen Zeichenfolgen, die es unterstützt.

Zitieren des crontab(5) Manpage (von meinem Ubuntu 12.04-System):

Anstelle der ersten fünf Felder kann einer von acht speziellen Strings erscheinen:

string         meaning
------         -------
@reboot        Run once, at startup.
@yearly        Run once a year, "0 0 1 1 *".
@annually      (same as @yearly)
@monthly       Run once a month, "0 0 1 * *".
@weekly        Run once a week, "0 0 * * 0".
@daily         Run once a day, "0 0 * * *".
@midnight      (same as @daily)
@hourly        Run once an hour, "0 * * * *".

Bitte beachten Sie, dass der Start bis zu @reboot betrifft, ist die Zeit, in der cron(8) Daemon-Start. Insbesondere kann es sein, bevor einige Systemdämonen oder andere Einrichtungen gestartet wurden. Dies liegt an der Startreihenfolge des Computers.

Dies ist bei weitem nicht das einzige Möglichkeit, etwas beim Booten auszuführen, aber es ist eine Alternative.


So ziemlich alle Linux-Varianten (seit langer, langer Zeit) haben eine Datei /etc/rc.local, die beim Start ausgeführt wird - Sie können den Befehl einfach hinzufügen.

Das heißt, Sie müssen das nicht einmal tun. Der "richtige" Weg wäre, die Zeile kernel.sysrq =1 in /etc/sysctl.conf

zu modifizieren / hinzuzufügen
Linux
  1. Wie führen wir einen in einer Variablen gespeicherten Befehl aus?

  2. Wie integriere ich den Mv-Befehl nach dem Find-Befehl?

  3. Wie kann ich Skripte beim Booten in Centos 7 automatisch ausführen?

  4. Wie führe ich einen Befehl aus, nachdem ein bereits laufender, bestehender beendet wurde?

  5. Wie kann ich eine Nagios-Prüfung manuell über die Befehlszeile ausführen?

So führen Sie einen Linux-Shell-Befehl / ein Skript im Hintergrund aus

So führen Sie den Sudo-Befehl ohne Passwort aus

So führen Sie Linux-Befehle im Hintergrund aus

So booten Sie in die Linux-Befehlszeile

So führen Sie einen Befehl regelmäßig unter Linux mit Watch aus

Wie kann man nohup verwenden, um einen Befehl nach der Benutzerabmeldung weiter auszuführen?