


So verwenden Sie den Befehl nohup unter Linux
Was ist nohup
nohup
ist ein Befehl in Linux- und Unix-Systemen. Seine Funktion besteht darin, den Prozess im Hintergrund weiterlaufen zu lassen, wenn das Terminal beendet wird. Der vollständige Name lautet „no hang up“, was „kein Auflegen“ bedeutet. Mit dem Befehl nohup
können Sie weiterhin Befehle ausführen, nachdem Sie das Terminal verlassen oder die SSH-Verbindung geschlossen haben. nohup
是Linux和Unix系统中的一个命令,其作用是在终端退出时,让进程在后台继续运行。它的全称为“no hang up”,意为“不挂起”。nohup
命令可以让你在退出终端或关闭SSH连接后继续运行命令。
nohup语法规则
nohup命令的基本语法如下:
nohup COMMAND [ARGS ...] [> output-file 2> error-file] &
其中的参数含义如下:
COMMAND
:需要在后台运行的命令或脚本。ARGS
:命令或脚本的参数。> output-file
:输出重定向到指定的文件中。2> error-file
:错误信息重定向到指定的文件中。&
:将命令放在后台运行。
nohup命令的执行过程分为以下几个步骤:
nohup命令将当前shell的标准输入、标准输出和标准错误输出全部重定向到
/dev/null
设备中,避免被关闭终端的信号所中断。nohup命令将进程放到后台执行,并将进程的PID输出到终端。
进程开始执行,并将标准输出和标准错误输出重定向到指定的文件中。
用户可以退出终端或关闭终端窗口,进程仍然在后台运行。
nohup使用方法
使用nohup命令非常简单,按照上面的基本语法即可。以下是一些nohup命令的用法示例:
后台运行命令
要在后台运行命令,只需要在命令行中输入以下命令即可:
nohup COMMAND &
例如,在后台运行一个Bash脚本:
nohup bash test.sh &
标准输出重定向到文件
nohup bash test.sh > stdout.txt &
标准错误输出重定向到文件
nohup bash test.sh 2> stderr.txt &
将标准输出和标准错误输出都重定向到文件
1. 重定向到同一文件
nohup bash test.sh > output.txt 2>&1 &
2. 重定向到不同文件
nohup bash test.sh > stdout.txt 2> stderr.txt &
3. 一个更为复杂的例子,重定向标准输入(stdin):
nohup ./myprogram > foo.out 2> foo.err < /dev/null &
这里多出来一个< /dev/null
,意思是将标准输入重定向到/dev/null
,以确保程序不会从标准输入中读取任何数据。
这个是为了解决一个实际问题:SSH会话常常拒绝注销(或者挂起),因为它不愿意去丢失与后台job(s)进行交互的数据。当遇到这个问题的时候,可以使用上面的命令,通过三次重定向来解决。
nohup后台进程管理
使用 jobs
命令可以查看当前 shell 中后台运行的任务列表,包括任务编号、状态和命令。
例如,我们在后台执行一个sleep 1000
命令,使用jobs
命令查看:
$ jobs [1]+ Running nohup sleep 1000 &amp;
其中,方括号中的数字表示任务编号,加号或减号表示任务的优先级,Running
表示任务正在后台运行。除此之外,还有其他可能的状态,包括 Stopped
(已停止)、Done
(已完成)等。
我们还可以使用 fg
命令将一个后台任务移动到前台继续运行,例如:
$ fg %1
这个命令会将任务编号为 1 的任务移动到前台,继续执行。如果希望将任务暂停或恢复,可以使用 Ctrl-Z
键,在当前 shell 中发送 SIGTSTP
信号。
$ fg %1 nohup sleep 1000 ^Z [1]+ Stopped nohup sleep 1000
此时如果想要恢复运行,可以使用bg
命令:
$ bg %1 [1]+ nohup sleep 1000 &amp;
如果想要杀死该任务,可以使用kill
命令:
$ kill %1 [1]+ Terminated nohup sleep 1000
如果你想杀死所有后台任务,但是又觉得一个个地比较麻烦,可以使用disown
命令来解决:
$ disown -a
这个命令可以杀死所有后台任务,但不会有任何提示,你可以通过jobs
- #🎜🎜#
BEFEHL
: Ein Befehl oder Skript, das im Hintergrund ausgeführt werden muss. #🎜🎜# - #🎜🎜#
ARGS
: Parameter eines Befehls oder Skripts. #🎜🎜# - #🎜🎜#
> Ausgabedatei
: Die Ausgabe wird in die angegebene Datei umgeleitet. #🎜🎜# - #🎜🎜#
2&gt; error-file
: Die Fehlermeldung wird in die angegebene Datei umgeleitet. #🎜🎜# - #🎜🎜#
&
: Führen Sie den Befehl im Hintergrund aus. #🎜🎜#
- # 🎜🎜 Der Befehl #nohup leitet alle Standardeingaben, Standardausgaben und Standardfehlerausgaben der aktuellen Shell an das Gerät
/dev/null
um, um eine Unterbrechung durch ein Signal zum Schließen des Terminals zu vermeiden. #🎜🎜# - #🎜🎜#Der Befehl nohup stellt den Prozess zur Ausführung in den Hintergrund und gibt die PID des Prozesses an das Terminal aus. #🎜🎜#
- #🎜🎜#Der Prozess startet die Ausführung und leitet die Standardausgabe und die Standardfehlerausgabe in die angegebene Datei um. #🎜🎜#
- #🎜🎜#Benutzer können das Terminal verlassen oder das Terminalfenster schließen, und der Prozess läuft weiterhin im Hintergrund. #🎜🎜#
Befehl im Hintergrund ausführen
#🎜🎜#Um einen Befehl im Hintergrund auszuführen, geben Sie einfach den folgenden Befehl in die Befehlszeile ein: #🎜 🎜#rrreee #🎜🎜#Um beispielsweise ein Bash-Skript im Hintergrund auszuführen: #🎜🎜#rrreeeStandardausgabe wird in eine Datei umgeleitet
rrreeeStandardfehlerausgabe wird in eine Datei umgeleitet
rrreeeLeiten Sie sowohl die Standardausgabe als auch die Standardfehlerausgabe in eine Datei um.
#🎜🎜#1 In dieselbe Datei umleiten#🎜🎜#rrreee#🎜🎜#2 #🎜🎜#rrreee#🎜 🎜#3. Ein komplexeres Beispiel, die Standardeingabe umleiten (stdin): #🎜🎜#rrreee#🎜🎜#Es gibt einen zusätzlichen< Das bedeutet, dass die Standardeingabe nach <code>/dev/null
umgeleitet wird, um sicherzustellen, dass das Programm keine Daten aus der Standardeingabe liest. #🎜🎜##🎜🎜#Hiermit soll ein praktisches Problem gelöst werden: Eine SSH-Sitzung weigert sich häufig, sich abzumelden (oder hängt), weil sie nicht bereit ist, die Daten zu verlieren, die mit dem/den Hintergrundjob(s) interagieren. Wenn dieses Problem auftritt, können Sie es mit dem obigen Befehl lösen, indem Sie dreimal umleiten. #🎜🎜#nohup Hintergrundprozessverwaltung
#🎜🎜#Verwenden Sie den Befehljobs
, um die Liste der Aufgaben anzuzeigen, die im Hintergrund in der aktuellen Shell ausgeführt werden, einschließlich Aufgabennummern und Status und Befehle. #🎜🎜##🎜🎜#Zum Beispiel führen wir einen sleep 1000
-Befehl im Hintergrund aus und verwenden den jobs
-Befehl, um Folgendes anzuzeigen: #🎜🎜#rrreee#🎜🎜 #Wo, Quadrat Die Zahl in Klammern gibt die Aufgabennummer an, das Plus- oder Minuszeichen gibt die Priorität der Aufgabe an und Running
gibt an, dass die Aufgabe im Hintergrund ausgeführt wird. Darüber hinaus gibt es weitere mögliche Zustände, darunter Stopped
(gestoppt), Done
(abgeschlossen) usw. #🎜🎜##🎜🎜#Wir können auch den Befehl fg
verwenden, um eine Hintergrundaufgabe in den Vordergrund zu verschieben, um sie weiter auszuführen, zum Beispiel: #🎜🎜#rrreee#🎜🎜#Dieser Befehl nummeriert die Aufgabe 1 Die Aufgabe wird in den Vordergrund gerückt und die Ausführung wird fortgesetzt. Wenn Sie eine Aufgabe anhalten oder fortsetzen möchten, können Sie mit den Tasten Strg-Z
das Signal SIGTSTP
in der aktuellen Shell senden. #🎜🎜#rrreee#🎜🎜#Wenn Sie den Betrieb zu diesem Zeitpunkt wieder aufnehmen möchten, können Sie den Befehl bg
verwenden: #🎜🎜#rrreee#🎜🎜#Wenn Sie die Aufgabe beenden möchten, Sie können den Befehl kill
verwenden: #🎜🎜#rrreee#🎜🎜#Wenn Sie alle Hintergrundaufgaben beenden möchten, es aber mühsam finden, sie einzeln auszuführen, können Sie den Befehl disown verwenden
-Befehl zur Lösung des Problems: # 🎜🎜#rrreee#🎜🎜#Dieser Befehl kann alle Hintergrundaufgaben beenden, es erfolgt jedoch keine Eingabeaufforderung. Sie können dies mit dem Befehl jobs
bestätigen. #🎜🎜#Das obige ist der detaillierte Inhalt vonSo verwenden Sie den Befehl nohup unter Linux. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undress AI Tool
Ausziehbilder kostenlos

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

LinuxcanrunonModesthardwareWithSpecificMinimumRequirements Amshouldbeatleast512MBForCommand-LINEUSOR2GBFORTESKTOPENVIRMENTS.DIKSPACEREQUIRESAMINIMUMUMOF5–10 GB, obwohl25GBISBETTERFORAD

Als Pionier in der digitalen Welt standen der einzigartige Codename und die zugrunde liegende Technologie immer im Mittelpunkt der Aufmerksamkeit der Menschen. Sein Standardcode ist BTC, auch als XBT auf bestimmten Plattformen bekannt, die internationale Standards entsprechen. Aus technischer Sicht ist Bitcoin kein einziger Codestil, sondern ein riesiges und ausgeklügeltes Open -Source -Softwareprojekt. Sein Kerncode ist hauptsächlich in C geschrieben und enthält Kryptographie, verteilte Systeme und Wirtschaftsgrundsätze, damit jeder seinen Code anzeigen, überprüfen und beitragen kann.

Um PHP -Container zur Unterstützung der automatischen Konstruktion zu ermöglichen, liegt der Kern in der Konfiguration des Continuous Integration (CI) -Prozesses. 1. Verwenden Sie Dockerfile, um die PHP -Umgebung zu definieren, einschließlich grundlegender Bild-, Erweiterungsinstallations-, Abhängigkeitsmanagement- und Berechtigungseinstellungen. 2. Konfigurieren Sie CI/CD-Tools wie GitLabci und definieren Sie die Erstell-, Test- und Bereitstellungsstadien über die Datei .gitlab-ci.yml, um automatische Konstruktion, Test und Bereitstellung zu erreichen. 3.. Integrieren Sie Testframeworks wie Phpunit, um sicherzustellen, dass die Tests automatisch nach Codeänderungen ausgeführt werden. 4. Verwenden Sie automatisierte Bereitstellungsstrategien wie Kubernetes, um die Bereitstellungskonfiguration durch die Datei bereitzustellen. 5. Dockerfile optimieren und mehrstufige Konstruktionen übernehmen

Der Aufbau einer unabhängigen Umgebung für PHP -Aufgabencontainer kann über Docker implementiert werden. Die spezifischen Schritte sind wie folgt: 1. Installieren Sie Docker und DockerComponpose als Grundlage; 2. Erstellen Sie ein unabhängiges Verzeichnis, um Dockerfile und Crontab -Dateien zu speichern. 3. Schreiben Sie Dockerfile, um die PHPCLI -Umgebung zu definieren und Cron und die erforderlichen Erweiterungen zu installieren. 4. Schreiben Sie eine Crontab -Datei, um Zeitaufgaben zu definieren. 5. Schreiben Sie ein Docker-compose.yml-Mount-Skriptverzeichnis und konfigurieren Sie Umgebungsvariablen. 6. Starten Sie den Container und überprüfen Sie das Protokoll. Im Vergleich zu Timing -Aufgaben in Webcontainern haben unabhängige Container die Vorteile der Ressourcenisolation, der reinen Umgebung, der starken Stabilität und einer einfachen Expansion. Gewährleistung der Protokollierung und Fehleraufnahme

Bestätigen Sie den Namen der Zielfestplatte (z. B. /dev /sda), um das Versand, die Systemscheibe versehentlich zu löschen. 2. Verwenden Sie sudoddif =/dev/zeroof =/dev/sdxbs = 1mstatus = Fortschritt, um den Nullwert in der vollständigen Festplatte zu überschreiben, was für die meisten Szenarien geeignet ist. 3. Verwenden Sie Sudoshred-V-N3/Dev/SDX für drei zufällige Datenüberschreibungen, um sicherzustellen, dass sie nicht wiederhergestellt werden können. V. Verwenden Sie schließlich sudohexdump-c/dev/sdx |

WindowsSbetterForBeginersDuetoeaseofuse, SeamlessHardWarecompatibilität und SupportformainStreamSoftwarelikemicrosoftOfficAndAbApps.2.LinuxoutPerformswindowSonolderorlow-Resourcehardwarewithfasterboottimes, LowersyStemRequeStemeStemRequirements und LowsSystems und LesslosedleSble

Fügen Sie UserAdd- oder Adduser -Befehle hinzu, die üblicherweise von Benutzern unter Linux verwendet werden. 1. Bei Verwendung von UserAdd müssen Sie das Passwort und das Heimverzeichnis manuell festlegen. Fügen Sie den Parameter -m hinzu, um das Home -Verzeichnis zu erstellen. 2. Sie können die Shell, Gruppe und UID durch Parameter wie -s, -g und -U angeben; 3. Adduser ist ein interaktiver Befehl, der für Anfänger geeignet ist, um die Konfiguration automatisch zu vervollständigen. V. 5. UserDel kann versehentlich Benutzer und Home -Verzeichnisse löschen. Durch das Beherrschen dieser wichtigen Punkte können Sie Benutzer effizient und sicher verwalten.

cronisusedForprecisesDulingonalways-Einsysteme, whileanaconeSureSureStoctasKsRunonSystemthataren'tcontinuouslyPowered, Suchaslaptops; 1.USecronforexacttiming (z
