Linux nohup, um Programme im Hintergrund auszuführen und anzuzeigen (nohup und &)

Linux nohup, um Programme im Hintergrund auszuführen und anzuzeigen (nohup und &)

1. Hintergrundausführung

Im Allgemeinen werden Programme unter Linux durch Ausführen von .sh-Dateien (./sh-Dateien) ausgeführt. Was ist, wenn es den Betrieb des aktuellen CMD-Fensters nicht beeinträchtigt und im Hintergrund ausgeführt werden muss?

Derzeit müssen Sie die Befehle „nohup“ und „&“ verwenden, um dies zu erreichen.

nohup java -server -Xms128M -Xmx512M -XX:MetaspaceSize=128M -jar test.jar $1 $2 $3 &

(1) kein Kommentar

Fügen Sie es vor einem Befehl hinzu, um anzuzeigen, dass der Befehl ohne Unterbrechung ausgeführt wird.

(2) und

Lädt das Ende eines Befehls, um anzuzeigen, dass dieser Befehl im Hintergrund ausgeführt wird.

2. Zeigen Sie die im Hintergrund ausgeführten Befehle an

Es gibt zwei Befehle zum Anzeigen: ps und jobs. Der Unterschied besteht darin, dass Jobs nur die Aufgaben anzeigen können, die im Hintergrund des aktuellen Terminals ausgeführt werden. Diese sind nicht sichtbar, wenn Sie das Terminal ändern. Der Befehl ps eignet sich zum Anzeigen der Dynamik momentaner Prozesse und kann die Aufgaben anderer Terminals anzeigen.

(1) Arbeitsplätze

[root@localhost test]# Jobs
[1]- Ausführen von nohup java -Dfile.encoding=UTF-8 -Dname=Runtime-Name -server -Xms128M -Xmx512M -XX:MetaspaceSize=128M -XX:MaxMetaspaceSize=256M -XX:+HeapDumpOnOutOfMemoryError -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled -jar test.jar $1 $2 $3 & (Arbeitsverzeichnis: /home/ams/ams-server/test)
[2]+ Ausführen von nohup java -Dfile.encoding=UTF-8 -Dname=Container-Name -server -Xms128M -Xmx512M -XX:MetaspaceSize=128M -XX:MaxMetaspaceSize=256M -XX:+HeapDumpOnOutOfMemoryError -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled -jar test1.jar $1 $2 $3 &

Es wurden zwei Hintergrundprozesse nacheinander gestartet und beide nach der Verwendung von Jobs angezeigt. „+“ steht für die letzte Aufgabe (aktuelle Aufgabe) und „-“ für die vorherige Aufgabe.

Der Befehl „Jobs“ kann es nur anzeigen, wenn in der aktuellen Befehlszeile „nohup“ und „&“ verwendet werden. Wenn Sie sie in ein .sh-Skript schreiben und dann das Skript ausführen, werden sie nicht angezeigt.

Beispielsweise werden nach der Ausführung des folgenden Skripts keine Jobs angezeigt:

#!/bin/bash
nohup java -Dfile.encoding=UTF-8 -Dname=Laufzeitname -server -Xms128M -Xmx512M -XX:MetaspaceSize=128M -XX:MaxMetaspaceSize=256M -XX:+HeapDumpOnOutOfMemoryError -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled -jar test.jar $1 $2 $3 &

(2) ps-Befehl

[root@localhost test]# ps -aux|grep java
root 21219 0,3 3,9 6258172 148900 Punkte/0 Sl 10:08 0:02 java -Dfile.encoding=UTF-8 -Dname=Runtime-Name -server -Xms128M -Xmx512M -XX:MetaspaceSize=128M -XX:MaxMetaspaceSize=256M -XX:+HeapDumpOnOutOfMemoryError -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled -jar test.jar
root 21662 0,2 ​​3,0 5041008 116648 Punkte/0 Sl 10:10 0:01 java -Dfile.encoding=UTF-8 -Dname=Containername -server -Xms128M -Xmx512M -XX:MetaspaceSize=128M -XX:MaxMetaspaceSize=256M -XX:+HeapDumpOnOutOfMemoryError -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled -jar test1.jar
root 23761 0,0 0,0 112664 972 Punkte/0 S+ 10:19 0:00 grep --color=auto java

Dies ist ein häufig verwendeter Befehl zum Anzeigen von Prozessen. Mehr werde ich daher nicht sagen.

a: Alle Programme anzeigen u: Benutzerbasiert anzeigen x: Alle Programme anzeigen, unabhängig vom Endgerät

3. Schließen Sie das aktuelle Hintergrundprogramm

Kill-Befehl

(1) Überprüfen Sie die Jobnummer über den Befehl „Jobs“ und führen Sie dann „kill %jobnum“ aus.

(2) Verwenden Sie den Befehl ps, um die Prozess-ID PID anzuzeigen, und führen Sie dann kill %PID aus

Wenn es sich um einen Vordergrundprozess handelt, führen Sie einfach Strg+C aus, um ihn zu beenden.

4. Umschalten und Steuern der Vordergrund- und Hintergrundprozesse

(1) fg-Befehl

Bringen Sie den Befehl im Hintergrund in den Vordergrund, um ihn weiter auszuführen

Wenn sich im Hintergrund mehrere Befehle befinden, können Sie zunächst mit „jobs“ die Jobnummer anzeigen und dann mit „fg %jobnum“ den ausgewählten Befehl aufrufen.

(2) Strg + z Befehl

Einen im Vordergrund ausgeführten Befehl in den Hintergrund stellen und in einen angehaltenen Zustand versetzen

(3) bg-Befehl

Wandeln Sie einen im Hintergrund angehaltenen Befehl in einen Befehl um, der im Hintergrund weiter ausgeführt wird.

Wenn sich im Hintergrund mehrere Befehle befinden, können Sie zunächst mit „jobs“ die Jobnummer anzeigen und dann mit „bg %jobnum“ den ausgewählten Befehl zur weiteren Ausführung aufrufen.

[root@localhost test]# Jobs
[1]- Ausführen von nohup java -Dfile.encoding=UTF-8 -Dname=Runtime-Name -server -Xms128M -Xmx512M -XX:MetaspaceSize=128M -XX:MaxMetaspaceSize=256M -XX:+HeapDumpOnOutOfMemoryError -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled -jar test.jar $1 $2 $3 & (Arbeitsverzeichnis: /home/test)
[2]+ Ausführen von nohup java -Dfile.encoding=UTF-8 -Dname=Container-Name -server -Xms128M -Xmx512M -XX:MetaspaceSize=128M -XX:MaxMetaspaceSize=256M -XX:+HeapDumpOnOutOfMemoryError -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled -jar test1.jar $1 $2 $3 &
 
// Nach der Verwendung von fg Task 2 in den Vordergrund verschieben [root@localhost test]# fg 2
nohup java -Dfile.encoding=UTF-8 -Dname=Containername -server -Xms128M -Xmx512M -XX:MetaspaceSize=128M -XX:MaxMetaspaceSize=256M -XX:+HeapDumpOnOutOfMemoryError -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled -jar test1.jar $1 $2 $3
 
^Z
// Nach dem Drücken von Strg+Z Task 2 in den Hintergrund setzen und pausieren [2]+ Stopped nohup java -Dfile.encoding=UTF-8 -Dname=Container-Name -server -Xms128M -Xmx512M -XX:MetaspaceSize=128M -XX:MaxMetaspaceSize=256M -XX:+HeapDumpOnOutOfMemoryError -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled -jar test1.jar $1 $2 $3
 
// Nach der Verwendung von bg den Vorgang von Task 2 aktivieren [root@localhost test]# bg 2
[2]+ nohup java -Dfile.encoding=UTF-8 -Dname=Containername -server -Xms128M -Xmx512M -XX:MetaspaceSize=128M -XX:MaxMetaspaceSize=256M -XX:+HeapDumpOnOutOfMemoryError -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled -jar test1.jar $1 $2 $3 &

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird.

Das könnte Sie auch interessieren:
  • Lösen Sie das Problem der im Hintergrund laufenden Python-Nohup-Linux-Ausgabe
  • PHP-Daemon-Prozess plus Linux-Befehl nohup zur Implementierung der Aufgabenausführung einmal pro Sekunde
  • So verwenden Sie & und nohup im Hintergrund von Linux
  • Detaillierte Erklärung der Lösung für das Problem, dass die Nohup-Protokollausgabe unter Linux zu groß ist
  • Verwendung von nohup und tail-f unter Linux
  • Nohup und Anzeigen und Beenden von im Hintergrund laufenden Prozessen unter Linux

<<:  Komponentendesignspezifikationen für die Entwicklung von WeChat-Miniprogrammen

>>:  MySQL Installations-Tutorial unter Windows mit Bildern und Text

Artikel empfehlen

So installieren Sie binäres MySQL unter Linux und knacken das MySQL-Passwort

1. Stellen Sie sicher, dass das System über die e...

Einführung in die Verwendung gängiger Dockerfile-Befehle

Inhaltsverzeichnis 01 CMD 02 EINSTIEGSPUNKT 03 AR...

So verwenden Sie worker_threads zum Erstellen neuer Threads in nodejs

Einführung Wie im vorherigen Artikel erwähnt, gib...

Zusammenfassung der Möglichkeiten zur Implementierung von Single Sign-On in Vue

Das Projekt wurde vor Kurzem ausgesetzt und die U...

Detaillierte Erklärung der allgemeinen For-Schleife in JavaScript-Anweisungen

Es gibt viele Schleifenanweisungen in JavaScript,...

Detaillierte Erklärung der Befehle zum Anzeigen von Linux-Dateien

So zeigen Sie Linux-Dateien an Befehl zum Anzeige...

Welche Vorteile bietet die Verwendung eines B+-Baums als Indexstruktur in MySQL?

Vorwort In MySQL verwenden sowohl Innodb als auch...

JavaScript-Countdown zum Schließen von Anzeigen

Verwenden von Javascript zum Implementieren eines...

Zusammenfassung häufig verwendeter Befehle für Linux-Dateioperationen

0. Neuer Betrieb: mkdir abc #Erstelle einen neuen...

MySQL 8.0.25 Installations- und Konfigurations-Tutorial unter Linux

Das neueste Tutorial zur Installation von MySQL 8...