Ordre traitement des processus script shell
Résolu/Fermé
A voir également:
- Ordre traitement des processus script shell
- Script vidéo youtube - Guide
- Classic shell windows 10 français - Télécharger - Personnalisation
- Excel trier par ordre croissant chiffre - Guide
- Traitement de texte gratuit open office - Télécharger - Suite bureautique
- Dans le document, les références des pièces détachées sont affichées par pays, puis par type de pièces. réorganisez le document pour avoir : les pays dans l'ordre alphabétique : allemagne, espagne, france et italie ; et pour chaque pays, les pièces d'auto, de bateau et de moto dans cet ordre. quelle est la référence de la pièce en ligne 500 ? ✓ - Forum Windows
3 réponses
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 894
31 mai 2010 à 15:47
31 mai 2010 à 15:47
Salut,
Question 1 : Oui
Question 2 : Tu lances la commande précédente en arrière-plan (commande &) et tu intercales un "sleep 10", puis tu vérifies que le job de la commande en arrière-plan ($!) n'est plus présent...
Question 1 : Oui
Question 2 : Tu lances la commande précédente en arrière-plan (commande &) et tu intercales un "sleep 10", puis tu vérifies que le job de la commande en arrière-plan ($!) n'est plus présent...
question 1: merci
question 2: si j'ai bien compris, ca donne ça?
commande 0
/noyaudecalcul &
sleep 10
commande 1
question 2: si j'ai bien compris, ca donne ça?
commande 0
/noyaudecalcul &
sleep 10
commande 1
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 894
31 mai 2010 à 16:26
31 mai 2010 à 16:26
commande 0 /noyaudecalcul & sleep 10 kill %1 # pour tuer le job en arrière-plan commande 1
d'accord!
Alors en fait je n'ai pas été assez précis dans ma demande.
Normalement le noyau de calculs met 1/2 seconde à peu près. Sauf qu'avec cette méthode même s'il a finit, on doit attendre 10 secondes avant de passer à la commande suivante.
Je voudrais que si le temps mis pour l'execution du noyau de calculs est supérieur à 10 secondes le processus soit interrompu sinon on passe directement à la commande suivante dès que le noyau à terminer.
Une idée?
Alors en fait je n'ai pas été assez précis dans ma demande.
Normalement le noyau de calculs met 1/2 seconde à peu près. Sauf qu'avec cette méthode même s'il a finit, on doit attendre 10 secondes avant de passer à la commande suivante.
Je voudrais que si le temps mis pour l'execution du noyau de calculs est supérieur à 10 secondes le processus soit interrompu sinon on passe directement à la commande suivante dès que le noyau à terminer.
Une idée?
dubcek
Messages postés
18718
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
22 mars 2024
5 615
1 juin 2010 à 09:51
1 juin 2010 à 09:51
hello
/noyaudecalcul & PID=$! (sleep 10 ; pgrep -l noyaudecalcul | grep -q $PID && kill $PID )& wait $PID
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 894
1 juin 2010 à 09:58
1 juin 2010 à 09:58
Salut dubcek,
Normalement le noyau de calculs met 1/2 seconde à peu près. Sauf qu'avec cette méthode même s'il a finit, on doit attendre 10 secondes avant de passer à la commande suivante.
Ça ne change rien au problème et je ne pense pas qu'il soit possible de mettre en oeuvre ce que demande teab avec un job en arrière plan et la commande wait ;-((
Normalement le noyau de calculs met 1/2 seconde à peu près. Sauf qu'avec cette méthode même s'il a finit, on doit attendre 10 secondes avant de passer à la commande suivante.
Ça ne change rien au problème et je ne pense pas qu'il soit possible de mettre en oeuvre ce que demande teab avec un job en arrière plan et la commande wait ;-((
dubcek
Messages postés
18718
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
22 mars 2024
5 615
1 juin 2010 à 10:08
1 juin 2010 à 10:08
le sleep est en arrière plan, le wait va n'attendre qu'1/2 sec. et si il attend plus de 10 secs le kill va tuer PID et le wait se terminer
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 894
1 juin 2010 à 10:23
1 juin 2010 à 10:23
Arf, désolé, j'avais pas fait gaffe au sous-shell, je m'étais focalisé que sur le "sleep" ;-((
Toutes mes plates ;-)
Toutes mes plates ;-)
Bonjour !
Primo, merci! Je n'ai pas encore eu le temps de tester cette solution.
J'aimerai etre sur d'avoir compris.
/noyaudecalcul & ==> lancement en tache de fond
PID=$! ==> ??
(sleep 10 ; pgrep -l noyaudecalcul | grep -q $PID && kill $PID )& ==> en tache de fond: attente de 10s, recuperation du PID du noyaudecalcul et kill du processus
wait $PID
En fait j'ai un doute sur l'insertion de ce code dans une boucle for.
Car imaginons que la boucle est à l'indice i et que le calcul se fasse en 1/2s. Il ne faut pas que la tache de fond (sleep....) kill le processus de la boucle i+1.
Mon explication n'est peut être pas très clair mais j'ai du mal à cerner la difficulté.
Qu'en pensez-vous?
Primo, merci! Je n'ai pas encore eu le temps de tester cette solution.
J'aimerai etre sur d'avoir compris.
/noyaudecalcul & ==> lancement en tache de fond
PID=$! ==> ??
(sleep 10 ; pgrep -l noyaudecalcul | grep -q $PID && kill $PID )& ==> en tache de fond: attente de 10s, recuperation du PID du noyaudecalcul et kill du processus
wait $PID
En fait j'ai un doute sur l'insertion de ce code dans une boucle for.
Car imaginons que la boucle est à l'indice i et que le calcul se fasse en 1/2s. Il ne faut pas que la tache de fond (sleep....) kill le processus de la boucle i+1.
Mon explication n'est peut être pas très clair mais j'ai du mal à cerner la difficulté.
Qu'en pensez-vous?