Peut-être lié à cela question précédente , J'aimerais pouvoir exécuter une tâche pendant un laps de temps déterminé, puis l’arrêter / la tuer, puis la redémarrer.
Plus précisément, j'exécute l'application Folding @ Home sur mon poste de travail Linux. Périodiquement, il aura des difficultés à se connecter au serveur domestique et restera inactif pendant longtemps, mais ne libèrera pas la mémoire / les ressources revendiquées (oui, je réalise que c'est probablement un bogue de l'outil, mais je peux t résoudre ce problème actuellement). En règle générale, le simple fait de tuer et de démarrer l'outil permet à celui-ci de se réenregistrer.
Donc, j'aimerais pouvoir exécuter quelque chose comme:
run_for <time> ./fah6
Est-ce qu'un tel outil existe, ou devrais-je écrire un wrapper que nukes le fah6
client après, disons, une semaine et le redémarrer?
la source
cron
pour celui-ci :) .. Je vais voir à quel point cela peut être difficile à fairekillall fah6
à 9h00 et un autre qui le redémarre à 18h00.outil de délai d'attente.
par exemple:
la source
Dans cet exemple, ' dormir 60 'est un espace réservé pour la commande que vous souhaitez terminer plus tôt. Remplacer ' dix 'avec combien de temps vous voulez exécuter votre commande timed (au plus) en secondes. Ce qui précède devrait sortir après 10 secondes, tuant le ' dormir 60 'processus.
Notez que ceci est pour bash.
la source
cron
fonctionnera, mais si vous vouliez qu’elle ne soit exécutée qu’une seule fois, ou si l’heure change de jour en jour, son utilisation sera plus simple.at
( à la page de manuel ):Les étapes sont les suivantes:
&
à la fin de la ligne le démarre en tâche de fond). La ligne suivante indique le numéro de processusat>
l'invite apparaît, tapez kill et le numéro de travail indiqué ci-dessusla source
$!
, comme dans la réponse de slartibartfastPersonnellement, je mettrais en œuvre dans le script la capacité d’exécuter, d’attendre et de supprimer le sous-processus.
En python avec quelque chose comme:
http://docs.python.org/dev/library/multiprocessing.html
Si ce n'est pas en Python, utilisez os.system ('./ fah6') dans le code du script qui gère wait / stop / restart
la source