|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Candidat au titre de Membre du Club
![]() Inscription : juillet 2004 Messages : 35 ![]() |
Bonjour,
Contexte: Programmation shell sous UNIX Le problème: Mon script ne doit pas pouvoir être relancé si il est déjà en cours. La solution: créer un fichier temporaire au lancement du script après vérification de son existence (ou mettre le numero du process etc...) mais ca ne me plait pas beaucoup de creer un fichier. Utilisé la commande "ps" me tente plus. mais tous les scripts ont pour nom "-ksh" ce qui ne me permet pas de filtrer sur le processus correspondant à mon script. Sachant que je n'ai pas de droit root sur les serveurs (pas de modification de conf possible), comment puis-je faire? Peut-on tagger le nom d'un processus au lancement afin d'utiliser un ps et un grep sur le tagg? Merci d'avance! |
|
|
00
|
|
|
#2 |
|
Expert Confirmé Sénior
![]() Inscription : janvier 2007 Messages : 8 741 ![]() |
ben ton script il lance une application ou il est autonome ??
__________________
"Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle". Consultant indépendant. Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie. C, Fortran, XWindow/Motif, Java Je ne réponds pas aux MP techniques |
|
|
00
|
|
|
#3 |
|
Expert Confirmé Sénior
![]() Inscription : janvier 2007 Messages : 8 741 ![]() |
tu peux si tu veux juste faire un "touch nom_du_script_demarre" dans /tmp, et ta première instruction du script serait "if /tmp/nom_du_script_demarre existe" exit ..
Et si tu as fini ton scirpt, sa dernière instruction est "rm -f .." Non ?
__________________
"Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle". Consultant indépendant. Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie. C, Fortran, XWindow/Motif, Java Je ne réponds pas aux MP techniques |
|
|
00
|
|
|
#4 | ||
![]() ![]() Alain Ingénieur d'études décisionnel Inscription : mai 2002 Messages : 4 450 ![]() |
Utiliser une variable du shell pour enregistrer l'état d'exécution du script :
Code :
__________________
Modérateur Langage SQL N'oubliez pas le bouton et pensez aux balises [code]Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur ![]() |
||
|
|
00
|
|
|
#5 | ||
|
Expert Confirmé
![]() Inscription : mars 2004 Messages : 3 109 ![]() |
La méthode assez utilisée , c'est la création d'un fichier de lock dans /var/lock par exemple
Au début du script Code :
__________________
Ancien Rédacteur Linux && Unix / Nouveau retraité de DVP The UNIX way of sex: gunzip;strip;touch;finger;mount;fsck;more;yes;umount;sleep Je ne réponds ni aux messages privées, ni aux messages plein de fautes... |
||
|
|
00
|
|
|
#6 |
|
Candidat au titre de Membre du Club
![]() Inscription : juillet 2004 Messages : 35 ![]() |
Je vais utiliser la solution de "al1_24"
car il n'utilise pas de fichier temporaire et c'est ce qui m'interressait. Merci encore à tous pour votre rapidité!
|
|
|
00
|
|
|
#7 |
|
Expert Confirmé Sénior
![]() Inscription : janvier 2007 Messages : 8 741 ![]() |
si tu veux mais c'est moins sûr : il faut que cette variable soit définie pour TOUS les utilisateurs, dans les .xxxrc ... et un script lançant un autre script peut ne pas l'exécuter..
__________________
"Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle". Consultant indépendant. Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie. C, Fortran, XWindow/Motif, Java Je ne réponds pas aux MP techniques |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com