68 votes

Linux : Comment savoir où un processus a été lancé et comment il a été lancé ?

Je vérifiais une machine Linux et j'ai trouvé un processus perl en cours d'exécution qui prenait une bonne partie de l'utilisation du processeur. Avec top, je ne pouvais trouver que perl dans le nom du processus.

Lorsque j'ai appuyé sur c Si j'ai choisi d'afficher la ligne de commande, j'ai vu /var/spool/mail. Ce qui n'a pas de sens, puisqu'il s'agit d'un répertoire.

Mes questions sont les suivantes :

1) Pourquoi cela s'est-il produit ? Comment ce processus perl a-t-il pu masquer sa ligne de commande ? 2) Quel est le moyen le plus fiable de savoir où et comment un processus a été lancé ?

Gracias.

2voto

Brad Points 1004

Sans consulter la page de manuel pour les drapeaux exacts, un moyen facile de trouver la ligne de commande et l'heure de démarrage, ps auxwww devrait fonctionner. Vous pouvez le rendre plus élégant si vous le souhaitez en lisant la page de manuel.

2voto

Ankur Points 8952

Essayez d'utiliser la commande fuser -vu /var/spool/mail Cette commande affiche les PID des processus utilisant les fichiers ou systèmes de fichiers spécifiés. Dans le mode d'affichage par défaut, chaque nom de fichier est suivi d'une lettre indiquant le type d'accès :

c - répertoire actuel. e - exécutable en cours d'exécution. f - fichier ouvert. f est omis dans le mode d'affichage par défaut. r - répertoire racine. m - fichier ou bibliothèque partagé(e) avec un mode d'affichage (mmap'ed).

Peut-être que cela vous aidera à avancer dans votre recherche de la réponse que vous cherchez. Je ne sais pas si cela vous aidera, mais vous trouverez peut-être des informations utiles.

1voto

MagicKat Points 5192

Deux commandes Spring me viennent à l'esprit :

1) obtenir l'heure de début du processus à partir de ' ps '.

$ ps -ax -o pid,start,comm
  PID  STARTED COMMAND         USER
    1   Feb 06 init            root
    2   Feb 06 kthreadd        root
[...]
  13147 19:09:48 chrome          hcooper
  13270 19:13:51 chrome          hcooper
  13386 19:18:34 bash            hcooper

2) Dernière commande que je vérifie maintenant, je n'ai pas installé. Quoi qu'il en soit, la description de la page de manuel dit :

   lastcomm prints out information about previously executed commands. If
   no arguments are specified, lastcomm will print info about all of the
   commands in acct (the record file).

Mais comme d'autres l'ont dit, "ls -al /proc/" vous en dira beaucoup !

0voto

M Imam Pratama Points 101

Si vous connaissez le PID (identifiant du processus), utiliser pstree avec -s (afficher les processus parents) et -p (afficher les PID) :

$ pstree -sp 23419
systemd(1)systemd(2339)tmux: server(31195)bash(23234)sudo(23396)apt-get(23398)http(23419)

Ensuite, utilisez ps pour obtenir les détails des processus parentaux :

$ ps 23398 23396
  PID TTY      STAT   TIME COMMAND
23396 pts/4    S+     0:00 sudo apt-get update
23398 pts/4    S+     0:00 apt-get update

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