J'accède à un serveur exécutant CentOS (distribution Linux) avec une connexion SSH. Comme je ne peux pas toujours rester connecté, j'utilise "Nohup [commande] &" pour exécuter mes programmes.
Je ne trouvais pas comment obtenir une liste de tous les programmes que j'ai commencé à utiliser Nohup. "jobs" ne fonctionne que lorsque je me déconnecte. Après cela, si je me reconnecte, la commande jobs ne me montre rien, mais je peux voir dans mes fichiers journaux que mes programmes sont toujours en cours d'exécution.
Est-il possible d'obtenir une liste de tous les programmes que j'ai commencé à utiliser "Nohup"?
Quand j'ai commencé avec $ Nohup storm dev-zookeper
,
METHOD1: en utilisant jobs
,
prayagupd@prayagupd:/home/vmfest# jobs -l
[1]+ 11129 Running Nohup ~/bin/storm/bin/storm dev-zookeeper &
METHOD2:en utilisant la commande 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]
Colonne ATS avec ?
=> Nohup
programmes en cours d'exécution.
Description
référence
$ man ps
# puis recherchez /PROCESS STATE CODES
Au lieu de Nohup
, vous devriez utiliser screen
. Le résultat est identique: vos commandes sont exécutées "en mode détaché". Toutefois, vous pouvez reprendre les sessions d’écran, revenir dans leur terminal "caché" et voir les progrès récents à l’intérieur de ce terminal.
screen
a beaucoup d'options. Le plus souvent j'utilise ceux-ci:
Pour démarrer la première session d’écran ou reprendre la dernière session détachée:
screen -Rd
Pour vous détacher de la session en cours: Ctrl+ACtrl+D
Vous pouvez également démarrer plusieurs écrans - lisez la documentation.
Si vous avez une redirection de sortie standard vers "Nohup.out", il suffit de voir qui utilise ce fichier.
lsof | grep Nohup.out
Vous ne pouvez pas obtenir exactement la liste des commandes lancées avec Nohup
, mais vous pouvez les voir avec vos autres processus en utilisant la commande ps x
. Les commandes commencées par Nohup
auront un point d'interrogation dans la colonne TTY.
Vous pouvez également simplement utiliser la commande top et votre ID utilisateur vous indiquera les tâches en cours d'exécution et leur heure.
$ top
(cela affichera tous les travaux en cours)
$ top -U [user ID]
(Cela affichera les travaux spécifiques à l’ID utilisateur)