GNU/Linux >> Tutoriels Linux >  >> Linux

Comment obtenir uniquement l'utilisateur, le pid et la commande exécutée pour un processus spécifique ? (Ubuntu 11.10)

Je suppose que vous recherchez l'argument -o :

-o format :

format.format défini par l'utilisateur est un argument unique sous la forme d'une liste séparée par des blancs ou des virgules, qui permet de spécifier des colonnes de sortie individuelles. Les mots-clés reconnus sont décrits dans la section STANDARDFORMAT SPECIFIERS ci-dessous. Les en-têtes peuvent être renommés (ps -o pid,ruser=RealUser -o comm=Command) comme vous le souhaitez. Si tous les en-têtes de colonne sont vides (ps -o pid=-o comm=), la ligne d'en-tête ne sera pas affichée. La largeur de colonne augmentera selon les besoins pour les en-têtes larges ; cela peut être utilisé pour élargir des colonnes telles que WCHAN(ps -o pid,wchan=WIDE-WCHAN-COLUMN -o comm). Le contrôle explicite de la largeur (ps opid,wchan:42,cmd) est également proposé. Le comportement de ps -o pid=X,comm=Y varie selon la personnalité; la sortie peut être une colonne nommée "X,comm=Y" ou deux colonnes nommées "X" et "Y". Utilisez plusieurs -ooptions en cas de doute. Utilisez la variable d'environnement PS_FORMAT pour spécifier une valeur par défaut comme vous le souhaitez ; DefSysV et DefBSD sont des macros qui peuvent être utilisées pour choisir les colonnes UNIX ou BSD par défaut.

Donc, la commande que vous voulez serait (Ubuntu):

ps -o uid,pid,cmd -ef|grep python

sous OpenSolaris la commande est :

ps -o ruser,pid,comm -ef|grep python

Le plus simple serait probablement :

$ ps o uid=,pid=,cmd= -C python
1000 26126 python

De cette façon, vous obtenez tout directement de ps et n'avez pas besoin d'analyser quoi que ce soit.

Depuis le ps page de manuel :

format -o

Format défini par l'utilisateur. format est un argument unique sous la forme d'une liste séparée par des blancs ou des virgules, qui offre un moyen de spécifier des colonnes de sortie individuelles. [...] Les en-têtes peuvent être renommés (ps -o pid,ruser=RealUser -o comm=Command) comme désiré. Si tous les en-têtes de colonne sont vides (ps -o pid=-o comm=), la ligne d'en-tête ne sera pas générée.

-C cmdlist
     Select by command name.  This selects the processes whose executable 
     name is given in cmdlist.

Le -C l'option fonctionnera si vous exécutez python interactivement, pas si python exécute un script. Dans ce cas, vous devez utiliser -C scriptname.py à la place.


ps -eo user,pid,cmd | grep [p]ython

Exemple :

$ ps -eo user,pid,cmd | grep [p]ython
root      1056 /usr/bin/python3 /usr/bin/networkd-dispatcher --run-startup-triggers
root      1735 /usr/bin/python3 /usr/bin/fail2ban-server -xf start
user     16613 /usr/bin/python3 /usr/share/system-config-printer/applet.py

Explication :

  • -e tous les processus
  • -o format défini par l'utilisateur
  • user,pid,cmd Afficher l'utilisateur, l'ID de processus et les colonnes de commande

Remarque : si vous utilisez -f avec -o comme d'autres l'ont suggéré, vous pouvez obtenir des erreurs. En effet, ces deux paramètres contrôlent le format de sortie et un seul d'entre eux doit être utilisé :

$ ps --help | grep -A 2 "output format"
*********** output format **********
-o,o user-defined  -f full
-j,j job control   s  signal

Linux
  1. CentOS / RHEL :Comment trouver quel utilisateur exécute une commande spécifique ?

  2. Comment exécuter la commande "find" sur le répertoire en cours uniquement et non sur les sous-répertoires

  3. Comment trouver l'ID de processus dans Ubuntu ?

  4. Comment faire passer les arguments de ligne de commande à un processus en cours d'exécution sur les systèmes unix/linux ?

  5. Comment obtenir l'ID de processus pour tuer un processus nohup ?

Comment exécuter une commande pendant une durée spécifique sous Linux

Comment trouver le PID et le PPID d'un processus sous Linux

Un grand changement pour Samba dans Ubuntu 22.04 et comment le contourner

Comment installer et utiliser la commande d'écran Ubuntu 20.04

Comment démarrer et installer Wine pour Ubuntu

Comment trouver le fichier .pid pour un processus donné