Montrer les process en cours avec le (s) nom (s) de file?

J'utilise mastic pour connecter mon server Linux dans lequel mes sites sont po Je peux courir

# ps aux | less 

pour montrer les process en cours. Mais je veux afficher quels files exécutent ces process?

J'ai aussi essayé

 # ps aux | grep <pid> 

Mais get cette erreur:

 -bash: syntax error near unexpected token `newline' 

Quelle est la bonne façon de le faire?

ps aux | grep <pid> ps aux | grep <pid> n'est pas une command shell. La notation <pid> est une convention commune pour signifier "mettre le PID là". Par exemple, si le PID est 1234, vous exécuterez ps aux | grep 1234 ps aux | grep 1234 . Ce n'est pas une command très utile, vous pourriez aussi bien exécuter ps u 1234 .

Votre question n'est pas très claire. Que voulez-vous dire par "avec les noms de files"? Si vous voulez voir quel exécutable le process 1234 exécute:

 ls -l /proc/1234/exe 

Si vous voulez voir quels files ce process a ouvert:

 ls -l /proc/1234/fd 

Si vous voulez voir la command line complète avec des arguments:

 tr '\0' '\n' </proc/1234/cmdline 

Si vous préférez utiliser des commands, lsof -p1234 affiche tous les files ouverts par le process. ps uww 1234 montre diverses informations sur le process 1234, y compris la command line complète.

essayez d'exécuter ce qui suit:

 ps -ef 

Tout d'abord, ps aux | grep <PID> ps aux | grep <PID> est utile lorsque vous souhaitez afficher les détails d'un process spécifique dont le PID (Process Identifier) ​​est représenté par <PID> .

Par exemple ( ps aux | grep 'firefox\|USER' signifie n'imprimer que les lignes contenant firefox ou USER ):

 ps aux | grep 'firefox\|USER' USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND terdon 9021 2.5 11.8 1950888 970832 ? Sl Apr03 108:41 /opt/firefox/firefox 

Donc, le PID de mon instance firefox est 9021. Donc, pour utiliser la command que vous essayez d'exécuter, je replaceais <PID> par 9021 :

 ps aux | grep 9021 terdon 9021 2.5 11.5 1948776 942640 ? Sl Apr03 109:03 /opt/firefox/firefox 

Maintenant, je ne suis pas sûr de ce que vous entendez par "afficher les files exécutant ces process". Si vous voulez dire afficher les files que ces process utilisent, ps aux est une façon de le faire. Disons que j'ai ouvert le file /usr/share/doc/nano/faq.html utilisant cette command:

  firefox /usr/share/doc/nano/faq.html 

Je pouvais voir quel file firefox avait ouvert en utilisant ps :

 ps aux | grep firefox terdon 31763 18.7 1.0 682916 84352 pts/10 Sl+ 17:10 0:02 firefox /usr/share/doc/nano/faq.html 

Le file ouvert est affiché comme l'un des arguments passés à firefox. Notez que le PID est différent (il est maintenant 31763 au lieu de 9021 ) parce que chaque programme en cours d'exécution a son propre PID unique.


Une autre command utile est top . Si vous l'exécutez avec le commutateur -c , il affichera les arguments transmis à une command, et avec -u <your user> il affichera uniquement les process démarrés par votre nom d'user (remplacez <your user> par votre nom d'user).

 top -c -u terdon 

C'est la sortie sur ma machine locale (l'user terdon exécute seulement deux process):

 top - 17:14:41 up 3 days, 49 min, 14 users, load average: 0.48, 0.54, 0.55 Tasks: 228 total, 1 running, 226 sleeping, 0 stopped, 1 zombie %Cpu(s): 7.1 us, 5.5 sy, 0.0 ni, 86.5 id, 0.0 wa, 0.0 hi, 0.9 si, 0.0 st KiB Mem: 8187940 total, 8007220 used, 180720 free, 349264 buffers KiB Swap: 8191996 total, 5556 used, 8186440 free, 4173004 cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 31573 terdon 20 0 24900 5576 1684 S 0.0 0.1 0:00.20 bash 31763 terdon 20 0 666m 77m 28m S 0.0 1.0 0:02.39 firefox /usr/share/doc/nano/faq.html 

Pour une explication de l'information montrée par top , voyez ma réponse à une question connexe sur SU.

certains caractères sous shell sont à des fins spéciales comme <>? "; …

grep PID n'est pas utile car PID est un identifiant de process et grep finda des valeurs numériques similaires …