Das Ausführen von Skripten im Hintergrund kann sehr nützlich sein, besonders in Fällen, in denen Sie eine langwierige Operation durchführen müssen, aber nicht möchten, dass sie Ihr Terminal blockieren. Unter Linux können Sie dies mit einigen Sonderzeichen und Befehlen tun.
Eine Möglichkeit, ein Skript im Hintergrund auszuführen, besteht darin, das kaufmännische und-Zeichen (&) am Ende des Befehls zu verwenden. Zum Beispiel:
Wenn Sie die Eingabetaste drücken, wird das Skript im Hintergrund ausgeführt und Sie können weiterhin im Terminal arbeiten, ohne darauf zu warten, dass es beendet wird. Seien Sie jedoch vorsichtig, da Sie keine Skriptausgabe in Ihrem terminal erhalten. Wenn Sie Zugriff auf die Ausgabe eines Skripts benötigen, können Sie es mit einem Umleitungssymbol (>) in eine Datei umleiten, zum Beispiel:
Sie können auch den Befehl nohup verwenden, mit dem Sie Prozesse starten können, die auch nach Beendigung Ihrer Verbindungssitzung aktiv bleiben. Zum Beispiel:
Wenn Sie nun Ihr Terminal schließen, funktioniert das Skript weiterhin. Die Ausgabe wird an die Nohup-Datei weitergeleitet.out, damit Sie es später überprüfen können.
Das Ausführen von Skripten im Hintergrund bietet Ihnen Flexibilität und Komfort bei der Arbeit unter Linux. Jetzt kennen Sie mehrere Möglichkeiten, dies zu tun, und Sie können die für Ihre Aufgaben am besten geeignete auswählen.
Methoden zum Ausführen eines Skripts im Hintergrund unter Linux
Linux bietet verschiedene Methoden zum Ausführen eines Skripts im Hintergrund, sodass der Benutzer weiterhin mit dem System interagieren und andere Aufgaben ausführen kann. Hier sind einige Möglichkeiten, ein Skript im Hintergrund unter Linux auszuführen:
Eine der einfachsten Möglichkeiten, ein Skript im Hintergrund auszuführen, besteht darin, das & -Symbol am Ende eines Befehls zu verwenden. Zum Beispiel:
python script.py &
Dadurch kann das Skript im Hintergrund ausgeführt werden, und Sie können die Arbeit im Terminal fortsetzen.
nohup
Mit dem Befehl nohup können Sie ein Skript ausführen, das auch nach dem Schließen des Terminals weiterhin ausgeführt wird:
nohup python script.py &
Dies ist nützlich, wenn Sie möchten, dass das Skript unabhängig von Ihrer Systemverbindung im Hintergrund ausgeführt wird.
at
Mit dem Befehl at können Sie die Ausführung des Skripts für eine bestimmte Zeit planen:
echo "python script.py" | at 10:00 AM
Dies ist nützlich, wenn Sie möchten, dass das Skript zu bestimmten Zeiten im Hintergrund ausgeführt wird.
screen
Mit dem Screen-Dienstprogramm können Sie virtuelle Terminals unter Linux erstellen. Sie können das Skript im virtuellen Terminal ausführen und dann die Verbindung trennen, damit das Skript weiterhin im Hintergrund ausgeführt wird. Hier ist, wie man es macht:
screenpython script.py
Um die Verbindung zum virtuellen Terminal zu trennen, drücken Sie STRG+A und drücken Sie dann D.
Führen Sie den folgenden Befehl aus, um eine Verbindung zum virtuellen Terminal herzustellen:
screen -r
Dies sind nur einige Möglichkeiten, ein Skript im Hintergrund unter Linux auszuführen. Wählen Sie das für Ihre Bedürfnisse am besten geeignete aus und vereinfachen Sie Ihre Arbeit mit dem System.
Verwenden des &-Symbols
Unter Linux wird das "&" -Symbol verwendet, um Befehle oder Skripte im Hintergrund auszuführen. Wenn Sie dieses Symbol nach einem Befehl verwenden, wird es im Hintergrund ausgeführt, und Sie können die Arbeit im Terminal fortsetzen, ohne darauf zu warten, dass die Ausführung des Befehls abgeschlossen ist.
Zum Beispiel, um ein Skript mit dem Namen "script.sh" im Hintergrund können Sie den folgenden Befehl verwenden:
Auf diese Weise wird das Skript im Hintergrund ausgeführt und Sie können die Arbeit im Terminal fortsetzen.
Um herauszufinden, welche Prozesse im Hintergrund ausgeführt werden, können Sie den Befehl "jobs" verwenden. Es wird eine Liste der aktiven Hintergrundaufgaben und deren Status angezeigt.
Wenn Sie die Ausführung einer Hintergrundaufgabe unterbrechen müssen, können Sie mit dem Befehl "fg" zu dieser Aufgabe wechseln und mit "Strg+C" beenden.
Die Verwendung des & -Symbols ist sehr praktisch, wenn Sie lange Operationen oder Skripte ausführen müssen, ohne das Terminal für andere Arbeiten zu sperren. Seien Sie jedoch vorsichtig, denn wenn Sie die Hintergrundprozesse nicht kontrollieren, kann dies zu Ressourcenverlusten oder unerwarteten Ergebnissen führen.
Verwenden des Befehls "nohup"
Mit dem Befehl "nohup" können Sie Skripts im Hintergrund auf einem Linux-Betriebssystem ausführen, wobei die Signale des Herunterfahrens des Programms ignoriert werden. Dies ist nützlich, wenn Sie das Skript auch nach dem Beenden einer Terminalsitzung fortsetzen möchten oder wenn die Sitzung automatisch beendet wird.
Um den Befehl "nohup" zu verwenden, müssen Sie ihn vor dem Ausführen des Skripts wie folgt eingeben:
nohup skriptname [Argumente] &
- skriptname - vollständiger Pfad zu der ausführbaren Datei oder dem Befehl, den Sie ausführen möchten;
- [Argumente] - zusätzliche Argumente, die an das Skript übergeben werden müssen;
- & - das kaufmännische und-zeichen zeigt an, dass der Befehl im Hintergrund ausgeführt wird.
Zum Beispiel, um das Skript "my_script.sh" mit den Argumenten "arg1" und "arg2" im Hintergrund müssen Sie Folgendes eingeben:
nohup my_script.sh arg1 arg2 &
Nach dem Ausführen des Befehls wird das Skript weiterhin ausgeführt, unabhängig davon, ob das Terminal geschlossen ist oder die Verbindung beendet wurde.
Wenn Sie den Befehl "nohup" verwenden, wird der Ausgabeprozess des Befehls in die nohup-Datei geschrieben.out im aktuellen Arbeitsverzeichnis. Wenn Sie die Ausgabe in einer separaten Datei speichern möchten, können Sie sie an einen anderen Speicherort umleiten, indem Sie ">>" und den Dateinamen nach dem Befehl hinzufügen:
nohup my_script.sh arg1 arg2 > output.log &
Die Ausgabe des Befehls wird nun zur Ausgabedatei hinzugefügt.log".
Verwenden des Dienstprogramms "screen"
Führen Sie die folgenden Schritte aus, um das Skript im Hintergrund mit "screen" auszuführen:
- Öffnen Sie ein Terminal und geben Sie den Befehl "screen" ein, um eine neue virtuelle Sitzung zu erstellen.
- Führen Sie Ihr Skript wie gewohnt aus.
- Drücken Sie Strg + A und dann d, um die Screen-Sitzung zu minimieren.
- Jetzt können Sie das Terminalfenster schließen oder sogar die Verbindung zum Server abbrechen, ohne das laufende Skript zu stoppen.
Führen Sie den Befehl "screen -r" aus, um wieder zur "screen" -Sitzung zurückzukehren und mit Ihrem Skript weiter zu arbeiten.
Das Dienstprogramm "screen" bietet auch viele andere Funktionen, wie das Teilen des Bildschirms, das Aufzeichnen einer Sitzung und das Verwalten mehrerer Fenster gleichzeitig. Weitere Informationen zu "Screen" -Befehlen finden Sie in der Dokumentation.
Mit dem Dienstprogramm "screen" können Sie die Arbeit mit Hintergrundprozessen auf einem Linux-Server erheblich vereinfachen und verbessern, wodurch sie stabil und nachvollziehbar sind.
Eine Warnung: Es ist wichtig sich daran zu erinnern, dass "screen" kein vollständiger Task-Manager ist und nicht dazu gedacht ist, langlebige Prozesse wie Dämonen auszuführen. Für solche Aufgaben wird empfohlen, andere Tools wie "systemd" oder "supervisor" zu verwenden.