Bonjour !
Parfois je lance une commande et je me rend compte qu'elle prend plus de temps que prévu. J'aimerai pouvoir lancer une autre tâche ensuite (soit une autre commande, soit éteindre la machine, soit connaître la date de fin de la première, etc.). J'imagine pouvoir faire quelque chose comme :
$ waitfor --process 1234 --exec 'shutdown -r now'
Ce n'est pas grave si l'exécution n'est pas immédiate (si le délai est d'une minute par exemple).
J'ai cherché s'il existait un outil spécifique, sans succès. J'ai trouvé des propositions de script shell (par exemple ce bout de code dans un forum, ou sur Stackoverflow), mais rien qui ai l'air d'être vraiment maintenu.
Peut-être ai-je utilisé de mauvais termes pour ma recherche ? (Par le passé, j'ai mis du temps à trouver xargs
ou tree
à cause de cela.)
Des idées ?
# ctrl+z et fg
Posté par tetraf . Évalué à 9. Dernière modification le 08 février 2013 à 03:21.
Tu peux faire ctrl+z dans la console pour interrompre la commande puis tu la réactives en précisant ce que tu veux qu'il se passe après.
Exemple :
# bash::wait
Posté par Marc Quinton . Évalué à 4.
il semble que wait fait exactement ce que tu souhaites :
si je tu le process, ca ne fonctionne pas sans doute à cause de l'opérateur && ; si jamais remplacer && par ;
[^] # Re: bash::wait
Posté par Marc Quinton . Évalué à 2.
ha zut, le soucis est que tu ne peux pas faire un wait sur n'importe quel process. Zut.
# waitproc
Posté par Marc Quinton . Évalué à 1.
le source code est ici et assez récent : https://github.com/vmj/waitproc
[^] # Re: waitproc
Posté par JJD . Évalué à 4.
Au final, le code indiqué ne fait que vérifier que le répertoire /proc/PID existe et est accessible.
Les différentes solutions indiquées sur stackoverflow fonctionnent aussi et il n'y a pas lieu de s'inquiéter du code non maintenu : il n'y a jamais qu'une ligne ou deux !
Pour la peine, je vais y aller de ma contribution en déclarant ma propre fonction bash (shell) waitproc :
Bon, ça ne teste pas si le process existe bien (sortie immédiate), mais ça devrait faire ce qui est demandé. Pour une sortie plus rapide en fin de process, on peut remplacer le
sleep 1
par une valeur inférieure, voire simplement par:
(deux points superposés : commande shell qui ne fait rien).A+
JJD
# DIY
Posté par Kerro . Évalué à 2. Dernière modification le 08 février 2013 à 16:55.
Quelque chose du genre :
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.