Commande en arrière plan - Codes et scripts - Linux et OS Alternatifs
Marsh Posté le 01-04-2009 à 21:35:41
Lancer en arrière plan : toto &
Récupérer le pid : pidof toto
Marsh Posté le 02-04-2009 à 00:11:35
Gavrinis, non, il y a une variable spéciale.
Il peux y avoir plusieurs process toto.
Code :
|
Marsh Posté le 02-04-2009 à 12:11:30
Merci bien , je vais essayer ça , je vous tiens au courant .
De mémoire , il me semble avoir déjà essayé hier :
Code :
|
Le shell m' a jeté , je crois , je vais retenter
Je m' inspire de : http://redflo.de/tiki-index.php?pa [...] t+function , pour faire un petit script qui tue ses processus s' ils plantent .
Marsh Posté le 02-04-2009 à 12:59:34
On ne peut lancer une commande en arrière plan entre back-quotes. D'ailleurs ça n'a aucun sens : lancer une commande en arrière plan ça veut dire continuer avant que la commande termine, alors que les backquotes supposent qu'on attende que la commande termine pour récupérer son output.
Marsh Posté le 02-04-2009 à 13:25:43
Merci pour cette explication détaillée
Il y a une solution pour lancer `commande -argument` en arrière plan et récupérer le résultat dans une variable du shell parent ?
La commande c' est juste un find sur un disque réseau , du coup elle peut planter .
Marsh Posté le 02-04-2009 à 13:31:54
Et tu ne penses pas que ton script devra, à un moment où à un autre, attendre que le find ait terminé pour faire quelque chose de sa sortie ? Dès lors, pourquoi lancer le find en arrière-plan ?
Marsh Posté le 02-04-2009 à 18:43:57
Pour l' instant , j' ai un truc qui ressemble à ça , pour compter le nombre de fichiers et leurs tailles sur un disque de serveur .
Code :
|
Si le find ou le du plante , ça n' arrive jamais à l' echo , je voudrais avec un timer tuer les process plantés et créer une sortie explicite .
J' ai pensé à autrechose :
Code :
|
C' est correct comme idée et syntaxe ?
Marsh Posté le 07-04-2009 à 00:20:20
exemple :
Code :
|
man 1 timeout
local/coreutils sous archlinux
Marsh Posté le 07-04-2009 à 10:45:12
Merci , je vais tester ça de suite
Après avoir lu le script que j' ai mentionné plus haut , avec le timer qui tourne en arrière plan , j' ai cru qu' il n' y avait pas de fonction timeout en bash
Par contre , dans mon script , j' ai une commande qui n' accepte pas le kill normal , je vais être obligé de lui envoyer un kill -9 si elle plante .
Marsh Posté le 07-04-2009 à 11:23:19
J' avais partiellement raison , il n' y a pas la commande timeout sur ma distrib (Opensuse).
Marsh Posté le 07-04-2009 à 17:33:59
sur Debian ce n'est pas installe par defaut,mais c'est installable.
Marsh Posté le 07-04-2009 à 17:34:42
Il faut coreutils version 7 ou plus pour avoir la commande timeout. Elle a un flag -s pour spécifier le signal à utiliser pour tuer le processus.
Marsh Posté le 09-04-2009 à 11:35:38
Oui , j' ai vu ça merci
Sous opensuse ils en sont à la version 6.x je sais plus combien , elle date de 2006 , et il n' y a pas plus récent en précompilé .
La commande timeout est incluse dans un autre paquet précompile "netatalk" , je vais pouvoir jouer avec timeout
Marsh Posté le 01-04-2009 à 20:19:57
Bonsoir,
J' ai un petit problème , dans un script je voudrais exécuter une commande du style :
Je dois la lancer en arrière plan et récupérer le pid pour la tuer si elle plante , toto et le résultat si la commande aboutit seront exploités dans le script) ,si vous pouviez m' aider pour la syntaxe , merci
Un autre truc , dans un script , j' exécute une commande qui lance un processus rattaché à init ( un mount en fait ) , je ne sais pas comment récupérer ce pid de processus non plus
Merci d' avance pour le coup de main
Message édité par Tuxerman12 le 01-04-2009 à 20:21:13