2015-12-11 1 views
1

Je suis en train de trouver l'utilisation cpu d'un processus de top.So avant que je devais tester la commande ci-dessoustop Linux n'impression nom complet de commande pour les fichiers en mode batch comme un processus nohup

top -b -c -d1 -n2 

J'utilise l'option -c pour imprimer le nom complet de la commande car le nom du processus est tronqué sans -c.
Non quand je lance cela comme nohup sh test.sh &, la nohup.out de sortie contient le nom de processus tronqué et parce que je ne suis pas en mesure de grep sur le nom du processus

159 neutron 30 0 127620 22765 5479 S 0.0 0.6 399:02.56 /usr/bin/p+t 

Mais quand je exécutez ceci comme sh test.sh & en imprimant le nom complet de la commande au terminal.
Pourquoi le nom de la commande complète n'est pas imprimé malgré l'utilisation de -c en mode de traitement par lots pour la commande supérieure?

Quelle est la différence entre le nom de la commande avec -c activé et le nom du processus?

Ou pour l'exprimer, le nom du processus et le nom de la commande sont différents et le nom du processus est choisi dans/proc/pid/status par des commandes comme ps ou top?

Répondre

1

Nous pouvons définir la variable d'environnement COLUMNS avant la commande supérieure pour augmenter la largeur disponible.

COLUMNS=1000 top -b -c -d1 -n2 

L'autre façon serait est d'utiliser ps pour trouver les pid de des processus par leur nom et spécifier le format de sortie ps peut être utilisé pour alimenter le dessus pour obtenir l'utilisation du processeur pour le processus basé sur pid.

ps -eo pid,comms,args 

comms = nom de la commande seulement et non les args
args = liste d'arguments complète utilisés pour lancer le processus

+0

Pour moi que '-c' est nécessaire. – fuenfundachtzig