Laufender Prozeß im Hintergrund mit Nohup

durch Sukrit Dhandhania auf 22. Dezember 2008

Linux

Ich arbeite auf Remotebedienern viel. Ich verwende SSH, um an meine Bediener anzuschließen. Ziemlich häufig lasse ich einen Prozeß laufen, den ich lasse Durchlauf benötige, selbst nachdem ich meinen SSH Anschluß schließe. Dieser könnte ein Oberteilindex sein, der durch meine Maschinenbordbuchakten oder sehr große mysql Datenbankwiederherstellung analysiert. Das ist, wenn ich an eine Linux Befehl Linie Dienstprogramm benanntes „nohup“ wende. „Nohup“ ist für „keinen Hängezustand“ kurz, der „ignorieren den Fall herauf Signal“ übersetzt. „Hängen Sie oben“ Signal ist, was geschieht, wenn Sie heraus loggen. Was „nohup“, ist, daß es Ihnen erlaubt, in Ihren Bediener zu loggen, einen Prozeß auszustoßen und heraus zu loggen. Die laufenden Prozeßunterhaelte, selbst nachdem Sie heraus geloggt haben. Wenn Sie wieder anmelden, können Sie diesen Prozeß wieder zugänglich machen, vorausgesetzt sein ruhiger Betrieb.

Die grundlegende Syntax von „nohup“ ist:

# nohup [Befehl] u.

Ersetzen Sie „[Befehl]“ mit dem Namen Ihres Oberteilindexes oder einem Befehl. „U.“ am Ende bildet den Befehl oder den Index laufen gelassen als Hintergrundprozeß. Ist hier ein Beispiel von, wie Sie „nohup“ benutzen würden, um eine Unterstützung einer großen mysql Datenbank auf Ihrem Remotebediener zu nehmen. Zuerst melde ich zu meinem Remotebediener mit SSH an:

# ssh calvin@sevenacross.com

Dann führe ich der Befehl „mysqldump - ucalvin - phobbes largedatabase durch > largedatabase.db“ im „nohup“ Modus, durch ein „nohup“ vorher addieren und „u.“ nach dem Befehl:

# nohup mysqldump - ucalvin - phobbes largedatabase > largedatabase.db u.
[1] 3999
# nohup: Ausgang zum `nohup.out anfügen'

Es gibt zwei Linien Ausgang, die Sie erhalten. Das „″ 3999 in der ersten Linie ist der Prozeß Identifikation des Prozesses, den ich gerade laichte, während das „nohup: Ausgang zum `nohup.out anzufügen'“ bedeutet, daß das Heraus sich setzte, das normalerweise zum Anschluß wird nachgeschickt in eine Akte kommen würde, die „nohup.out“ im Verzeichnis genannt wurde, von dem Sie den Befehl ausstießen. Sie können überprüfen, ob der Prozeß noch läuft, indem er durch alle Betriebprozesse mit dem Prozeß Identifikation sucht:

# ps - E-F | grep 3999
calvin 3999 29848 0 18:42? 00:00: 00 /usr/bin/mysqldump
calvin 6575 31852 0 18:44 pts/2 00:00: 00 grep 3999

Wenn der Prozeß erfolgter Betrieb ist, sehen Sie einen Ausgang in der Befehl Linie so:

[1] + getan nohup mysqldump - ucalvin - phobbes largedatabase > largedatabase.db

Sie können die Akte „nohup.out“ überprüfen, um auf alle mögliche Störungen oder andere Anzeigen zu überprüfen, die ausgegeben wurden, während der Prozeß lief. Wenn die Akte freier Raum bleibt, der okay ist. It means no messages were output while the process was running.

Related Posts:
  • How to use dstat to monitor your Linux/UNIX server
  • How to get detailed information on each running process in Windows
  • How to use a screensaver as your desktop background in OS X
  • How to reset a lost MySQL root password
  • How to blurminal your OS X Terminal
  • Get Simple Help tutorials just like this one in your email inbox every day - for free! Just enter your email address below:

    You can always opt out of this email subscription at any time.


    Bookmark and Share

    { 1 comment… read it below or add one }

    1 Bobby Cox 12.22.08 at 8:44 am

    Hello - Nohup is useful, but if you use screen you can detach and reattach to a terminal at will and have commands running in the background as well.

    http://www.gnu.org/software/screen/


    Bobby

    Leave a Comment

    You can use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>