Υπάρχουν διαθέσιμες πολλές εντολές σε συστήματα Linux. Υπάρχουν μερικοί που θα χρησιμοποιείτε πολλές φορές την ημέρα και υπάρχουν και άλλα που συνήθως προορίζονται για ειδικές περιπτώσεις χρήσης. Το Nohup είναι μία τέτοια εντολή. Δεν θα το χρησιμοποιείτε κάθε μέρα, αλλά θα είστε ευγνώμονες ότι είναι γύρω όταν το χρειάζεστε.

Τι είναι Nohup;

Το Nohup είναι σύντομο για το "No Hangups." Δεν είναι εντολή που τρέχετε μόνη της. Το Nohup είναι μια συμπληρωματική εντολή που λέει στο σύστημα Linux να μην σταματήσει μια άλλη εντολή μόλις ξεκινήσει. Αυτό σημαίνει ότι θα συνεχίσει να τρέχει μέχρι να ολοκληρωθεί, ακόμα κι αν ο χρήστης που την ξεκίνησε αποσυνδέεται. Η σύνταξη για το nohup είναι απλή και μοιάζει με αυτό:

 nohup sh your-script.sh & 

Παρατηρήστε το "&" στο τέλος της εντολής. Αυτό μετακινεί την εντολή στο παρασκήνιο, απελευθερώνοντας το τερματικό στο οποίο εργάζεστε.

Ο Nohup λειτουργεί με σχεδόν οποιαδήποτε εντολή που τρέχετε στο τερματικό. Μπορεί να εκτελεστεί με προσαρμοσμένα σενάρια, καθώς και με τυπικές εντολές συστήματος και βοηθητικά προγράμματα γραμμής εντολών.

Nohup.out

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

Από προεπιλογή, το αρχείο βρίσκεται σε οποιονδήποτε κατάλογο ξεκίνησε η εντολή. Το Nohup.out είναι κάπως μοναδικό επειδή περιέχει τόσο την τυπική έξοδο όσο και την έξοδο σφάλματος μαζί. Το Nohup ανακατευθύνει και τα δύο στο ίδιο αρχείο από προεπιλογή.

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

 nohup sh your-script.sh> /path/to/custom.out & 

Η προσαρμοσμένη έξοδος περιέχει ακριβώς τα ίδια δεδομένα με το πρότυπο αρχείο nohup.out.

Διαφορές με τους Δαίμονες

Σε αυτό το σημείο, αναρωτιέστε πιθανώς τι θέτει nohup εκτός από μια δαίμονα διαδικασία. Εξάλλου, και οι δύο φαίνονται να εξυπηρετούν το σχετικά ίδιο σκοπό, αλλά πραγματικά δεν το κάνουν. Οι δαίμονες τρέχουν συνεχώς στο παρασκήνιο. Είναι καλύτερα επιφυλακτικοί για διαδικασίες που δεν θέλετε ποτέ να βγείτε, όπως διακομιστές. Απαιτούν περισσότερη δουλειά για προγραμματισμό, έτσι ώστε να μην είναι καλύτερο για απλά μοναδικά σενάρια.

Το Nohup είναι για μία μόνο χρήση. Σκεφτείτε ένα σενάριο που θα διαρκέσει πολύ για να τρέξει, αλλά θα τελειώσει τελικά. Ίσως υπάρχει ένα μακρύ και περίπλοκο έργο που τρέχετε κάθε τώρα και τότε που διαρκεί ώρες για να ολοκληρωθεί. Δεν θέλετε να αφήσετε ένα τερματικό ανοιχτό ή έναν χρήστη συνδεδεμένο, οπότε μπορείτε να χρησιμοποιήσετε το nohup για να συνεχίσει να εκτελείται στο παρασκήνιο. Ως πρόσθετο επίδομα, αυτόματα θα καταγράφει τα πάντα για εσάς.

Μπορείτε να δείτε ότι nohup δεν είναι ένα καθημερινό εργαλείο, αλλά μπορεί να είναι πολύ χρήσιμο για το σωστό έργο. Βρίσκεται κάπου ανάμεσα σε ένα κανονικό σύντομο σενάριο και έναν συνεχώς τρέχοντα δαίμονα. Σας βοηθά να πάρετε περισσότερο από μια hands-off προσέγγιση σε μεγαλύτερα σενάρια που μπορεί να έχετε τακτικά χάσει χρόνο babysitting.