45 votes

Vérifier si le processus existe compte tenu de son pid

Compte tenu du pid d’un processus Linux, je veux vérifier, à partir d’un programme C, si le processus est toujours en cours d’exécution.

17voto

Janus Troelsen Points 5121

Utilisez procfs.

Facilement portable à

  • Solaris
  • IRIX
  • Tru64 UNIX
  • BSD
  • Linux
  • IBM AIX
  • QNX
  • Plan 9 de Bell Labs

17voto

the paul Points 5176

est l’approche typique, comme l’a dit @blagovest-buyukliev. Mais si le processus que vous vérifiez peut appartenir à un autre utilisateur et que vous ne souhaitez pas prendre les mesures supplémentaires pour vérifier si , il s’avère que

est une méthode efficace en une étape pour déterminer si un processus a le PID donné (puisque vous êtes autorisé à inspecter l’ID du groupe de processus même pour les processus qui ne vous appartiennent pas).

3voto

Hallvard Points 39

Vous pouvez émettre un appel système avec comme signal.

Il n’y a rien de dangereux à propos de `` . Le programme doit être conscient que le résultat peut devenir obsolète à tout moment (y compris que le pid peut être réutilisé avant que kill ne soit appelé), C’est tout. Et l’utilisation de procfs à la place utilise également le pid, et de le faire d’une manière plus lourde et non standard.

3voto

Kinthelt Points 1

En tant qu’addendum à la méthode de système de fichiers /proc, vous pouvez vérifier la ligne /proc/<pid>/cmdline (en supposant qu’elle a été démarrée à partir de la ligne de commande) pour voir si c’est le processus souhaité.</pid>

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X