Précédent   Forum des professionnels en informatique > Systèmes > Linux > Système
Système Vos questions autour de l'administration système
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 11/03/2011, 20h56   #1
Nouveau Membre du Club
 
Inscription : mars 2007
Messages : 89
Détails du profil
Informations personnelles :
Localisation : France, Nord (Nord Pas de Calais)

Informations forums :
Inscription : mars 2007
Messages : 89
Points : 31
Points : 31
Envoyer un message via Skype™ à LeCogiteur
Par défaut wait or not wait

Hello,

J'ai un script qui est relativement long à exécuter (1h environ). Ce script appelons le monScript.sh est appelé dans un autre script "main.sh". Le script "main.sh" sera lancé avec cron. J'ai besoin de récupérer la valeur du statut (1 ou 0 selon s'il y a des erreurs ou pas) de monScript.sh une fois qu'il aura terminé.

ma question est vaut il mieux faire ceci
Code :
1
2
3
4
5
 
...
monScript.sh
statut=$?
...
ou

Code :
1
2
3
4
5
6
 
...
monScript.sh & pid=$!
wait $pid
statut=$?
...
Y a t il une différence (hormis le code )? Est ce moins gourmand en terme de ressources de mettre monScript.sh en arrière plan? Ou y a pas de différences? En fait mes interrogations se porte surtout sur les perfs.
LeCogiteur est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/03/2011, 18h23   #2
Membre Expert
 
Étudiant
Inscription : août 2004
Messages : 500
Détails du profil
Informations personnelles :
Âge : 22

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : août 2004
Messages : 500
Points : 1 017
Points : 1 017
Envoyer un message via MSN à Senaku-seishin
A mon avis il n'y a pas de grande différence.

La commande wait provient du shell.

La seul différence c'est que dans le première cas, tu laisse le shell géré et dans le second, tu gère manuellement les interrupteurs
__________________
Avoir un regard neutre sur notre vie dénuée de sens, c'est la voir tel un ignorant
Senaku-seishin est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 13/03/2011, 19h45   #3
Nouveau Membre du Club
 
Inscription : mars 2007
Messages : 89
Détails du profil
Informations personnelles :
Localisation : France, Nord (Nord Pas de Calais)

Informations forums :
Inscription : mars 2007
Messages : 89
Points : 31
Points : 31
Envoyer un message via Skype™ à LeCogiteur
ok .

Je me demande également si je passe mon script monScript.sh en tache de fond cela aura pour conséquence de rendre sa priorité plus faible par rapport aux autre pocess qui tournent en avant plan, non?
LeCogiteur est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 13/03/2011, 20h07   #4
Membre Expert
 
Étudiant
Inscription : août 2004
Messages : 500
Détails du profil
Informations personnelles :
Âge : 22

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : août 2004
Messages : 500
Points : 1 017
Points : 1 017
Envoyer un message via MSN à Senaku-seishin
La priorité sera la même. Par défaut, elle est à 0.

Tu peux lancé avec une priorité différente avec nice (chiffre entre -20 et 20, plus il est petit plus la priorité est haute). Exemple :
Code :
nice -n -5 monscript.sh
__________________
Avoir un regard neutre sur notre vie dénuée de sens, c'est la voir tel un ignorant
Senaku-seishin est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 13/03/2011, 23h12   #5
Nouveau Membre du Club
 
Inscription : mars 2007
Messages : 89
Détails du profil
Informations personnelles :
Localisation : France, Nord (Nord Pas de Calais)

Informations forums :
Inscription : mars 2007
Messages : 89
Points : 31
Points : 31
Envoyer un message via Skype™ à LeCogiteur
Ok super

Je pensais que passer un process en background changait sa priorité. Merci.

Je ne connaissais pas nice. Comme cela je pourrais exécuter mon script qui est assez long en priorité faible pour que le système ne soit pas trop impacté.

Si tu connais d'autres commandes dans ce style je suis preneur.
LeCogiteur est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 14/03/2011, 22h45   #6
Nouveau Membre du Club
 
Inscription : mars 2007
Messages : 89
Détails du profil
Informations personnelles :
Localisation : France, Nord (Nord Pas de Calais)

Informations forums :
Inscription : mars 2007
Messages : 89
Points : 31
Points : 31
Envoyer un message via Skype™ à LeCogiteur
Hello j'ai une dernière question sur le wait. Lorsque l'on fait dans un script shell un wait, le process est bloqué, en attente? Quel est son état?
Si l'on ne met pas de wait, l'état du process est le même?
Que se passe passe t il au niveau du processeur et de la mémoire?
LeCogiteur est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 14/03/2011, 23h35   #7
Membre Expert
 
Étudiant
Inscription : août 2004
Messages : 500
Détails du profil
Informations personnelles :
Âge : 22

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : août 2004
Messages : 500
Points : 1 017
Points : 1 017
Envoyer un message via MSN à Senaku-seishin
J'ai effectué un test avec ps :
Code :
1
2
3
 
S+   20:31   0:00 bash
R    23:30   1:56 monscript.sh
Citation:
S Interruptible sleep (waiting for an event to complete)
R Running or runnable (on run queue)
__________________
Avoir un regard neutre sur notre vie dénuée de sens, c'est la voir tel un ignorant
Senaku-seishin est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 21/03/2011, 09h22   #8
Nouveau Membre du Club
 
Inscription : mars 2007
Messages : 89
Détails du profil
Informations personnelles :
Localisation : France, Nord (Nord Pas de Calais)

Informations forums :
Inscription : mars 2007
Messages : 89
Points : 31
Points : 31
Envoyer un message via Skype™ à LeCogiteur
J'ai fait quelques tests et tu as raison a priori les deux cas sont semblabes.

Merci
LeCogiteur 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 00h22.


 
 
 
 
Partenaires

Hébergement Web