GNU/Linux >> Tutoriels Linux >  >> Linux

Comment obtenir l'ID de processus du processus d'arrière-plan ?

Vous devez enregistrer le PID du processus d'arrière-plan au moment où vous le démarrez :

foo &
FOO_PID=$!
# do other stuff
kill $FOO_PID

Vous ne pouvez pas utiliser le contrôle des tâches, car il s'agit d'une fonctionnalité interactive et liée à un terminal de contrôle. Un script n'aura pas nécessairement de terminal attaché, donc le contrôle des tâches ne sera pas nécessairement disponible.


Vous pouvez utiliser le jobs -l commande pour accéder à un travail particulierL

^Z
[1]+  Stopped                 guard

my_mac:workspace r$ jobs -l
[1]+ 46841 Suspended: 18           guard

Dans ce cas, 46841 est le PID.

À partir du help jobs :

-l Indique l'ID du groupe de processus et le répertoire de travail des travaux.

jobs -p est une autre option qui affiche uniquement les PID.


  • $$ est le pid du script courant
  • $! est le pid du dernier processus d'arrière-plan

Voici un exemple de transcription d'une session bash (%1 fait référence au nombre ordinal de processus d'arrière-plan vu à partir de jobs ):

$ echo $$
3748

$ sleep 100 &
[1] 192

$ echo $!
192

$ kill %1

[1]+  Terminated              sleep 100

Linux
  1. Comment suspendre et mettre un processus d'arrière-plan au premier plan ?

  2. Comment obtenir la valeur de retour de CHILD PROCESS ?

  3. Comment obtenir l'utilisation du processeur

  4. Comment obtenir un processus enfant à partir d'un processus parent

  5. Comment obtenir uniquement l'ID de processus en spécifiant le nom du processus sous Linux?

Comment tuer un processus sous Linux

Comment obtenir l'utilisation du processeur d'un seul processus sous Linux

Comment envoyer des processus en arrière-plan sous Linux

Comment obtenir le PID par nom de processus ?

Comment faire en sorte que pgrep affiche les informations complètes sur le processus

Comment obtenir le pid du processus qui vient de démarrer