Running διαδικασία στο παρασκήνιο με Nohup

on December 22, 2008 από Sukrit Dhandhania στις 22 Δεκεμβρίου 2008

Linux

Δουλεύω σε απομακρυσμένους διακομιστές πολλά. Χρησιμοποιώ SSH μου για να συνδεθείτε με τους διακομιστές. Αρκετά συχνά να εκτελέσω μια διαδικασία που πρέπει να αφήσουμε να τρέχει ακόμα και μετά από στενή σύνδεση SSH μου. Αυτό θα μπορούσε να είναι ένα shell script που αναλύει μέσα από τα αρχεία μου ή πολύ μεγάλη βάση δεδομένων mysql αποκατάσταση. Αυτό είναι όταν απευθύνομαι σε Linux βοηθητικό πρόγραμμα γραμμής εντολών που ονομάζεται "nohup". "Nohup" είναι λίγος για "μη hangup", γεγονός που μεταφράζεται σε "αγνοούν την κλείσεις σήμα". Η "κλείσεις" μήνυμα είναι αυτό που συμβαίνει όταν αποσυνδεθείτε. Τι "nohup" κάνει είναι ότι σας επιτρέπει να συνδεθείτε με το διακομιστή σας, ξεκινήσει μια διαδικασία και αποσυνδεθείτε. Η διαδικασία κρατά ακόμη και μετά τη λειτουργία έχετε συνδεθεί έξω. Όταν συνδεθείτε ξανά μπορείτε να έχετε πρόσβαση σε αυτή τη διαδικασία εκ νέου, υπό την προϋπόθεση ότι η λειτουργία ακόμη.

Η βασική σύνταξη του "nohup" είναι:

# Nohup [εντολή] &

Αντικατάσταση "[command]" με το όνομα του shell script, ή μια εντολή. Η "&" στο τέλος κάνει την εντολή ή script τρέχει ως φόντο διαδικασία. Εδώ είναι ένα παράδειγμα για το πώς θα χρησιμοποιήσετε "nohup» για να λάβει ένα αντίγραφο ασφαλείας μιας μεγάλης βάσης δεδομένων mysql για απομακρυσμένο server. Πρώτον, θα συνδεθείτε με το απομακρυσμένο server μου με χρήση του SSH:

# Ssh calvin@sevenacross.com

Τότε θα εκτελέσει την εντολή "mysqldump-ucalvin-phobbes largedatabase> largedatabase.db" στο "nohup" τρόπο με την προσθήκη ενός "nohup" πριν και "&" μετά την εντολή:

# Nohup mysqldump-ucalvin-phobbes largedatabase> largedatabase.db &
[1] 3.999
# Nohup: προσυπογράφοντας εξόδου », για να nohup.out '

Υπάρχουν δύο γραμμές παραγωγής που έχετε. Το "3999" στην πρώτη γραμμή, είναι η διαδικασία ID της διαδικασίας που μόλις γεννήσει, ενώ οι "nohup: προσυπογράφοντας εξόδου», για να nohup.out "" σημαίνει ότι το εκτός που συνήθως ότι θα έρθει να το τερματικό που διαβιβάζονται σε ένα αρχείο που ονομάζεται "nohup.out" στον κατάλογο που θα ξεκινήσει από την εντολή. Μπορείτε να ελέγξετε αν η διαδικασία αυτή βρίσκεται ακόμη σε λειτουργία κατά την αναζήτηση, μέσω της λειτουργίας όλων των διαδικασιών με χρήση της διαδικασίας ID:

# Ps-EF | 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

Όταν η διαδικασία γίνεται λειτουργίας θα δείτε ένα προϊόν με την γραμμή εντολών όπως αυτή:

[1] + nohup Έγινε mysqldump-ucalvin-phobbes largedatabase> largedatabase.db

Μπορείτε να ελέγξετε το αρχείο "nohup.out" για να ελέγξει για τυχόν λάθη ή άλλα μηνύματα που είχαν έξοδο, ενώ η διαδικασία ήταν σε λειτουργία. Εάν το αρχείο που παραμένει κενή πειράζει. Αυτό σημαίνει ότι τα μηνύματα δεν ήταν εξόδου, ενώ η διαδικασία ήταν σε λειτουργία.

Σχετικές Θέσεις:
  • Πώς να αποκτήσετε λεπτομερείς πληροφορίες σχετικά με κάθε διαδικασία εκτελείται στα Windows
  • Πώς να χρησιμοποιήσετε dstat για την παρακολούθηση του Linux / UNIX server
  • Πώς να χρησιμοποιήσετε ένα screensaver ως φόντο στην επιφάνεια εργασίας σας OS X
  • Πώς να επαναφέρετε μια χαμένη MySQL ρίζα κωδικός πρόσβασης
  • Πώς να σας blurminal OS X Terminal
  • Λάβετε Απλή Βοήθεια tutorials όπως αυτό το email σας Εισερχόμενα κάθε μέρα - για δωρεάν! Απλά πληκτρολογήστε τη διεύθυνση email σας παρακάτω:

    Μπορείτε να αποφύγετε αυτό το email εγγραφής σε οποιαδήποτε χρονική στιγμή.


    Bookmark and share

    1 comment… read it below or (1 σχόλιο ... το διαβάσετε παρακάτω, ή προσθέσω ένα )

    1 Μπόμπι Cox 12.22.08 στις 8.44 π.μ.

    Γεια σας - Nohup είναι χρήσιμη, αλλά αν χρησιμοποιείτε την οθόνη μπορείτε να αποσυνδέσετε και να επισυνάψετε ξανά σε ένα τερματικό σταθμό και θα έχουν εντολές που εκτελούνται στο παρασκήνιο, όπως καλά.

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

    --
    Bobby

    Αφήστε ένα σχόλιο

    Μπορείτε να χρησιμοποιήσετε αυτές τις ετικέτες HTML και χαρακτηριστικά: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>