recuperer le PID d'un script

recuperer le PID d'un script - Codes et scripts - Linux et OS Alternatifs

Marsh Posté le 28-11-2006 à 11:35:28    

Bonjour,
J'ai un script qui est lancé quotidiennement via la crontab.
Son but lancer quotidiennement un programme.
 
Avant de le relancer il effectue un test pour savoir si il tourne encore auquel cas il le kill et le relance.
Aujourd'hui je récupere le PID avec un ps et un suite de |, grep, awk.... Mais existe t'il une facon simple de le récuperer lors du lancement et de l'enregistrer dans un fichier a la maniere de apache ou MySQL?
 
Merci.

Reply

Marsh Posté le 28-11-2006 à 11:35:28   

Reply

Marsh Posté le 28-11-2006 à 11:42:33    

ps aux | grep nom_du_fichier > fichier.txt
 
Non ?


---------------
Décentralisons Internet-Bépo-Troll Bingo - "Pour adoucir le mélange, pressez trois quartiers d’orange !"
Reply

Marsh Posté le 28-11-2006 à 11:57:20    

non,
justement c'est ce que je voudrais eviter.  
Je cherche une option de lancement qui puisse me donner le PID du programme que je lance des son lancement, et ne pas avoir a faire une recherche sur le process deja lancer pour recuperer son PID.

Reply

Marsh Posté le 28-11-2006 à 12:00:32    

une sorte de pid.lock? :??:

Reply

Marsh Posté le 28-11-2006 à 12:14:59    

Citation :

une sorte de pid.lock? :??:


.lock pas forcement, mais comme je l'ai precise, le recuperer de la meme facon que les daemon ssh ou apache losrqu'on les lance.
J'ai bien sur deja regarde les scripts de lancement de ces deamons et generalement c'est une option qu'ils integre dans leur binaire.Du style: --pidfile /var/run/sshd.pid
 
Mais j'avais encore espoire qu'il etait possible de le faire en bash....

Reply

Marsh Posté le 28-11-2006 à 12:24:14    

pidof -x "nom de ton script"

Reply

Marsh Posté le 28-11-2006 à 12:38:44    

Citation :

pidof -x "nom de ton script"


 
Impeccable, exactement ce que je cherche!!
Merci.

Reply

Marsh Posté le 28-11-2006 à 14:41:56    

thefakir a écrit :

Citation :

pidof -x "nom de ton script"


 
Impeccable, exactement ce que je cherche!!
Merci.


 
j'ai eu le même problème il y a 2 jours  :D

Reply

Marsh Posté le 28-11-2006 à 18:18:38    

la variable $$ est pas plus simple ?


---------------
Le droit à la différence s'arrête là où ça commence à m'emmerder sérieusement.
Reply

Marsh Posté le 09-02-2007 à 15:25:40    

witjet a écrit :

pidof -x "nom de ton script"


 
 
La commande pidof n'existe pas sur mon serveur (qui n'est pas Linux mais UNIX  :cry: ) :/
 
J'ai essayé ça :

ps -a | grep "nom_du process" | awk '{print $1}'


Le problème c'est qu'il trouve plusieurs process, et du coup j'ai une réponse du type

pid1 pid2

 
et je ne sais pas lequel choisir...
 
Est-ce qu'il existe un autre moyen pour récupérer le pid de mon script? (une variable d'environnement par exemple (je dis peut être n'importe quoi))
 
Merci d'avance :)

Reply

Marsh Posté le 09-02-2007 à 15:25:40   

Reply

Marsh Posté le 09-02-2007 à 15:29:40    

Zaib3k a écrit :

la variable $$ est pas plus simple ?


 
 
Ah on me fait signe que je viens de comprendre ce post :whistle:  
 
Donc pour ceux qui comme moi seraient un peu con, le PID du script en cours c'est la variable $$

Reply

Marsh Posté le 09-02-2007 à 16:31:39    

Sinon la variable $! retourne la même chose que pidof :

 
Code :
  1. dedibox:/usr/sbin# sleep 60 &
  2. [1] 17822
  3. dedibox:/usr/sbin# echo $!
  4. 17822
  5. dedibox:/usr/sbin# pidof sleep
  6. 17822
 

C'est ce dont tu as besoin ? :??:

 

edit : d'après le man

 
Code :
  1. pidof is simply a (symbolic) link to the killall5 program, which should also be located in /sbin.


Message édité par Cruchot le 09-02-2007 à 17:07:04
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed