Précédent   Forum des professionnels en informatique > Systèmes > Linux > Applications > Shell
Shell Vos questions sur l'utilisation des commandes shell
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 12/04/2007, 10h55   #1
Futur Membre du Club
 
Inscription : juillet 2006
Messages : 55
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 55
Points : 17
Points : 17
Par défaut Obtenir le PID attribué à mon script

Bonjour,

Dans un script shell sous unix, je souhaite récupérer le PID du script en cours d'exécution.
Quelqu'un a t'il une idée ?
stepd est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/04/2007, 11h00   #2
Membre émérite
 
Inscription : juin 2006
Messages : 1 117
Détails du profil
Informations personnelles :
Âge : 26

Informations forums :
Inscription : juin 2006
Messages : 1 117
Points : 989
Points : 989
Dans la mesure ou plusieurs processus sont toujours exécutés en même temps sous Linux (la commande pstree vous en convaincra), le seul moyen de récupérer le pid d'un script est . Sinon, au sein même d'un script, ou au prompt de la ligne de commande, vous pouvez récupérer le pid du dernier processus que vous venez de lancer, en faisant :
De la même manière, en faisant , vous avez le code de sortie délivré par la dernière commande terminée que vous avez lancée (le code de sortie sans erreur est 0 pour tous les programmes, il peut y avoir beaucoup d'autres codes de sortie en fonction du programme que vous utilisez.
kromartien est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/04/2007, 11h10   #3
Rédacteur
 
Inscription : mars 2004
Messages : 1 298
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 1 298
Points : 1 450
Points : 1 450
Citation:
Envoyé par kromartien
Sinon, au sein même d'un script, ou au prompt de la ligne de commande, vous pouvez récupérer le pid du dernier processus que vous venez de lancer, en faisant :

La variable $$ est le PID du script COURANT pas du dernier lancé !
__________________
Marc
Slackware for ever ......
BASH - KSH ( http://marcg.developpez.com/ksh/ )
MarcG est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/04/2007, 17h10   #4
Futur Membre du Club
 
Inscription : juillet 2006
Messages : 55
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 55
Points : 17
Points : 17
ok, merci beaucoup, ça mache très bien !
stepd est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/04/2007, 17h19   #5
Membre émérite
 
Inscription : juin 2006
Messages : 1 117
Détails du profil
Informations personnelles :
Âge : 26

Informations forums :
Inscription : juin 2006
Messages : 1 117
Points : 989
Points : 989
Citation:
Envoyé par MarcG
La variable $$ est le PID du script COURANT pas du dernier lancé !
C'est quoi le script courant ?
kromartien est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/04/2007, 10h58   #6
Rédacteur
 
Inscription : mars 2004
Messages : 1 298
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 1 298
Points : 1 450
Points : 1 450
le script courant est celui en cours (un sh) ......
une console, par exemple, est une "session shell" donc sont pid est $$
essaye un echo $$ ....
si je fait un petit script :
Code :
1
2
3
 
#!/bin/sh
echo $$
cela affichera le pid du script lors de son exécution.

le PID du dernier script lancer EN ARRIERE PLAN est $! :
Code :
1
2
3
4
5
6
7
 
#!/bin/sh
sleep 20 &
echo "pid de sleep "$!
echo "pid de $0 "$$
>pid de sleep 2803
>pid de tt 2800
voila.
__________________
Marc
Slackware for ever ......
BASH - KSH ( http://marcg.developpez.com/ksh/ )
MarcG est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 13h20.


 
 
 
 
Partenaires

Hébergement Web