159 votes

Comment puis-je connaître le chemin absolu d'un processus en cours d'exécution ?

Si j'ai plusieurs copies de la même application sur le disque, et qu'une seule est en cours d'exécution, comme je peux le voir avec la fonction ps comment puis-je savoir absolu chemin pour le distinguer des autres ?

184voto

akira Points 58339
% sudo ls -l /proc/PID/exe

eg :

% ps -auxwe | grep 24466
root     24466  0.0  0.0   1476   280 ?        S     2009   0:00 supervise sshd
% sudo ls -l /proc/24466/exe
lrwxrwxrwx 1 root root 0 Feb  1 18:05 /proc/24466/exe -> /package/admin/daemontools-0.76/command/supervise

36voto

seenu Points 323

Utilisez :

pwdx $pid

Cela vous donne le répertoire de travail actuel du pid, et non son chemin absolu.

Habituellement, le which vous dira lequel est invoqué depuis le Shell :

#> which vlc
/usr/bin/vlc

19voto

Jeff Points 3417

Un moyen est ps -ef

7voto

Matt Cummings Points 1288

7voto

ram Points 51

lsof est une option. Vous pouvez essayer quelque chose comme ci-dessous :

lsof -p PROCESS_ID

Cela donnera la liste de tous les fichiers ouverts par le processus, y compris l'emplacement réel de l'exécutable. Il est ensuite possible d'ajouter quelques awk , cut , grep etc. pour trouver l'information que vous recherchez.

Par exemple, j'ai exécuté les commandes suivantes pour identifier l'origine de mon processus 'java' :

lsof -p 12345 | awk '{print $NF}' | grep 'java$'

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X