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 08/01/2007, 16h56   #1
Futur Membre du Club
 
Inscription : avril 2004
Messages : 76
Détails du profil
Informations forums :
Inscription : avril 2004
Messages : 76
Points : 15
Points : 15
Par défaut sleep et kill pour script bash

Salut à tous,

Je souhaite créer un script qui lance un programme toutes les 5 minutes (un jar java).
J'ai donc fait une boucle infinie avec un sleep 300s dedans.
Ma première question est de savoir si le sleep est la bonne méthode pour faire que le processus ne prenne que le minimum de temps processeur pendant ces 5 minutes.
Ma seconde question est de savoir comment arrêter ce script quand on veut ?
Aisément, sans avoir à aller chercher le pid pour le killer, genre en lançant un autre script ?
Je ne sais pas si on peut récupérer le pid de mon premier script par le nom de celui-ci ou autre chose du style pour justement mettre ce kill dans le script d'arrêt ?

Et si je pars dans la mauvaise direction en faisant comme ça, vos conseils sont les bienvenus !

Merci.
jeyce est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/01/2007, 18h55   #2
Membre émérite
 
Avatar de panda31
 
Homme Michaël
Conseil - Consultant en systèmes d'information
Inscription : juin 2003
Messages : 673
Détails du profil
Informations personnelles :
Nom : Homme Michaël
Âge : 27
Localisation : France

Informations professionnelles :
Activité : Conseil - Consultant en systèmes d'information
Secteur : Conseil

Informations forums :
Inscription : juin 2003
Messages : 673
Points : 850
Points : 850
Salut,

Pour faire un kill selon le nom du processus, tu peux faire un script perl qui fait ce travail avec une recherche de pid avec les expressions régulières très pratiques. Depuis ton script perl, tu fais un system(ps -u nom_user) et ensuite, tu fais une recherche sur le nom du processus en décomposant ligne par ligne. C'est pas dur c'est un exercice de formation à perl.

Voilà en espérant que ca t'aide.

Pour la première question, c'est peut-être pareil. Au lieu de passer par un script bash, fais toi un script avec un langage plus évolué dont tu peux plus facilement manipuler les options comme perl ou python, légers eux aussi.

Voili voilou. N'hésite pas à demander si tu veux des éclaircissements.
__________________
Michaël Mary
Consultant PLM dans une société de conseil toulousaine
Auditeur CNAM-IPST depuis septembre 2008
"Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live."
John F. Woods
mon cv et mon domaine et mon blog
Aucune question technique par MP, svp
panda31 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/01/2007, 20h41   #3
Membre Expert
 
Avatar de narmataru
 
Inscription : décembre 2002
Messages : 1 423
Détails du profil
Informations personnelles :
Âge : 31
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations forums :
Inscription : décembre 2002
Messages : 1 423
Points : 1 491
Points : 1 491
bonjour,
au démarrage de ton script tu peux enregistrer son PID dans un fichier dont tu connais le répertoire. Comme ça tu n'a plus besoin de chercher son PID.
Ou alors ton script peut aussi vérifier la présence d'un fichier. si le fichier n'existe pas, ton scipt n'exécute pas l'action et sort de l aboucle. Ainsi pour stopper ton script tu n'a qu'a effacer le fichier.
__________________
Reportage d'Arte sur Linux
narmataru est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/01/2007, 23h29   #4
Membre Expert
 
Avatar de becket
 
Frédéric Brugmans
Informaticien multitâche
Inscription : février 2005
Messages : 661
Détails du profil
Informations personnelles :
Nom : Frédéric Brugmans

Informations professionnelles :
Activité : Informaticien multitâche

Informations forums :
Inscription : février 2005
Messages : 661
Points : 1 196
Points : 1 196
La solution la plus simple à mon avis est non pas de lancer un processus qui lance un boucle infinie pour relancer un processus toutes les 5 minutes mais bien d'utiliser un cron qui s'effectue toutes les 5 minutes..


Concernant le PID, en bash on peut obtenir le PID du script en cours avec $$ et et celui du sous shell via $!
becket est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2007, 21h34   #5
Futur Membre du Club
 
Inscription : avril 2004
Messages : 76
Détails du profil
Informations forums :
Inscription : avril 2004
Messages : 76
Points : 15
Points : 15
Merci pour ces premières réponses.

becket, as-tu un exemple d'utilisation des $$ et $ ?
jeyce est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 00h36.


 
 
 
 
Partenaires

Hébergement Web