web-dev-qa-db-fra.com

Commande Bash Run pendant un certain temps?

Je fais le script bash pour mon usage. Comment puis-je exécuter une commande pendant un certain temps, comme 20 secondes et terminer la commande? J'ai essayé beaucoup de solutions sur Internet mais rien ne marche, j'ai aussi essayé la commande de délai d'attente sans succès. S'il vous plaît donnez-moi une solution pour cela.

Merci d'avance

Mettre à jour

par exemple: je veux exécuter cette commande dans un script et un terminal après 10 secondes 

some command
22
Umair Riaz

Voici quelques scripts bash et un programme appelé timelimit qui peuvent résoudre votre problème . Kill processus après avoir été autorisé à s'exécuter pendant un certain temps

EDIT: Je pense avoir trouvé une meilleure solution. Essayez d'utiliser le programme de délai d'attente. Depuis la page de manuel: "Timeout - lancez une commande avec une limite de temps". Par exemple:

timeout 5s sleep 10s

En gros, il exécute votre commande et après la durée spécifiée, il la tue.

47
Roberto Gomez

Sur les systèmes qui ne fournissent pas la commande timeout, vous pouvez utiliser les éléments suivants:

your-cmd & sleep 30 ; kill $!

Cela fonctionnera potentiellement longtemps avec your-cmd avec un délai d'expiration de 30 secondes.

Si your-cmd ne se termine pas dans les 30 secondes, il recevra un signal TERM.

9
mato

Souhaitez-vous planifier l'exécution du script? Alors cron est ton ami.

1
Matthew Graves

Je suggère 2 options:

  • Sur les systèmes où vous avez la commande timeout, vous pouvez l’utiliser conformément à man timeout.
  • Sur les systèmes ne le disposant pas (par exemple CentOS 5), vous pouvez utiliser le script fourni avec bash /usr/share/doc/bash-3.2/scripts/timeout. Utilisez-le en fonction de ses informations d'utilisation.
0
keypress