2010-12-12 7 views

Répondre

17

Essayez-le avec celui-ci, il commence votre commande en arrière-plan, stocke son PID en $ P, attend un certain temps et le tue avec SIGHUP.

yourCommand & PID=$! 
sleep ${someMinutes}m 
kill -HUP $PID 

Vive

PS: qui suppose un sommeil qui sait Nm (minutes), sinon, vous voudrez peut-être faire un peu de maths :)

+0

+1 et '$ sommeil ((minutes * 60))' :) – khachik

+0

Khachik, qui est l'exercice pour le lecteur instruit;) –

+0

Merci! C'est essentiellement le perl que je viens d'écrire, mais c'est agréable de le voir comme un simple idiot. Je voudrais toujours un script pré-construit, si quelqu'un en connaît un, mais je vais accepter cela comme réponse. –

10
n=5 
some_command & 
pid=$! 
at now + $n minutes <<<"kill -HUP $pid" 

L'avantage d'utiliser at plus En attente de sleep, votre script ne bloquera pas l'attente de l'expiration du sommeil. Vous pouvez aller et faire d'autres choses et at tirera asynchrone à l'heure indiquée. Selon votre script, cela peut être une fonctionnalité très importante.

+0

J'ai donné +1 pour la fonction asynchrone, bien que le blocage soit ce que j'avais en tête. –

Questions connexes