
Είμαι πρόσβαση σε ένα διακομιστή που εκτελεί CentOS (διανομή linux) με μια σύνδεση SSH. Δεδομένου ότι δεν μπορεί πάντα να παραμένετε συνδεδεμένοι, μπορώ να χρησιμοποιήσω «nohup [εντολή] και» για την εκτέλεση προγραμμάτων μου.


Δεν μπόρεσα να βρω πώς να πάρετε μια λίστα με όλα τα προγράμματα που άρχισα να χρησιμοποιώ nohup. «Θέσεις εργασίας» λειτουργεί μόνο πριν αποσυνδεθείτε. Μετά από αυτό, αν μπορώ να συνδεθώ ξανά, η εντολή θέσεων εργασίας μου δείχνει τίποτα, αλλά μπορώ να δω στα αρχεία καταγραφής μου ότι τα προγράμματα μου είναι ακόμη σε εξέλιξη.


Είναι ένας τρόπος για να πάρετε μια λίστα με όλα τα προγράμματα που άρχισα να χρησιμοποιώ «nohup» εκεί;

 
Πώς να πάρετε μια λίστα με τα προγράμματα που εκτελούνται με nohup
==================================================================



Όταν άρχισα με `$ nohup storm dev-zookeper`,


**Μέθοδος1:** χρήση `jobs`,



```
[[email protected]](/cdn-cgi/l/email-protection):/home/vmfest# jobs -l
[1]+ 11129 Running                 nohup ~/bin/storm/bin/storm dev-zookeeper &

```

**Method2:**  **χρησιμοποιώντας `ps`την εντολή.** 



```
$ ps xw
PID  TTY      STAT   TIME COMMAND
1031 tty1     Ss+    0:00 /sbin/getty -8 38400 tty1
10582 ?        S      0:01 [kworker/0:0]
10826 ?        Sl     0:18 java -server -Dstorm.options= -Dstorm.home=/root/bin/storm -Djava.library.path=/usr/local/lib:/opt/local/lib:/usr/lib -Dsto
10853 ?        Ss     0:00 sshd: vmfest [priv] 

```

Στήλη TTY με `?`=> `nohup`προγράμματα που εκτελούνται.


**Περιγραφή**


* στήλη TTY = το τερματικό συνδέεται με τη διαδικασία
* στήλη STAT = κατάσταση μιας διαδικασίας
	+ S = διακοπτόμενη ύπνου (αναμονή για ένα γεγονός για να ολοκληρωθεί)
	+ l = είναι multi-threaded (χρησιμοποιώντας CLONE\_THREAD, όπως NPTL Pthreads κάνουμε)


**Αναφορά**


`$ man ps` # Στη συνέχεια αναζήτηση `/PROCESS STATE CODES`

 

Αντί `nohup`, θα πρέπει να χρησιμοποιήσετε `screen`. Αυτό επιτυγχάνει το ίδιο αποτέλεσμα - οι εντολές σας τρέχουν «ανεξάρτητο». Ωστόσο, μπορείτε να συνεχίσετε συνεδρίες οθόνη και να πάρει πίσω στο τους «κρυφό» τερματικό και δείτε την πρόσφατη πρόοδο μέσα σε αυτό το τερματικό.


`screen`έχει πολλές επιλογές. Τις περισσότερες φορές μπορώ να χρησιμοποιήσω αυτά:


Για να ξεκινήσετε την πρώτη συνεδρία της οθόνης ή να αναλάβει τις πιο πρόσφατες αποσπαστούν από:



```
screen -Rd 

```

Για να αφαιρέσετε από την τρέχουσα περίοδο λειτουργίας: `Ctrl+A``Ctrl+D`


Μπορείτε επίσης να ξεκινήσετε πολλαπλές οθόνες - διαβάστε τις docs.

 

Δεν μπορείτε ακριβώς να πάρετε μια λίστα με τις εντολές που ξεκίνησε με `nohup`, αλλά μπορείτε να τους δείτε μαζί με άλλες διαδικασίες σας, χρησιμοποιώντας την εντολή `ps x`. Εντολές ξεκίνησε με `nohup`, θα έχουν ένα ερωτηματικό στη στήλη TTY.

 

Αν έχετε standart ανακατεύθυνση εξόδου «nohup.out» απλά δείτε που χρησιμοποιούν αυτό το αρχείο



```
lsof | grep nohup.out

```
 

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


`$ top`


(Αυτό θα δείξει όλες τις τρέχουσες θέσεις εργασίας)


`$ top -U [user ID]`


(Αυτό θα δείξει τις θέσεις εργασίας που είναι ειδικά για την ταυτότητα χρήστη)

 