Cas d'utilisation exemplaire:
Je voudrais démarrer Telegram Desktop périodiquement toutes les 3 heures pendant 15 minutes, pour vérifier les nouveaux messages entrants. Après 15 minutes, l'application devrait se refermer et se relancer après les 3 heures suivantes.
cron
vous pouvez clairement démarrer des programmes. Vous pouvez également créer un cron akill -15
, mais cela dépend de l'application, qu'il le gère comme un léger coup d'arrêt, qu'il l'ignore ou qu'il se bloque simplement.Réponses:
Cron contre script d'arrière-plan
Bien sûr, la toute première chose qui vient à l'esprit est d'utiliser
cron
. Que vous utilisiez cron ou un petit script d'arrière-plan est principalement une question de goût.L'avantage de cron est qu'il se connecte à un processus existant (bien qu'un script n'ajoute en fait rien à la charge du processeur).
L'avantage d'un script d'arrière-plan est qu'il est plus flexible; tuez-le simplement et exécutez-le avec d'autres arguments si vous souhaitez modifier l'heure ou d'autres paramètres. Vous pouvez également le réutiliser avec d'autres applications sans avoir à refaire une configuration, une simple commande suffit.
Le script ci-dessous peut être exécuté par la commande (par exemple)
Où le dernier argument, s'il est défini, tue de force l'application. S'il n'est pas défini, l'application se fermera normalement, pour s'assurer que les modifications éventuelles, etc. ne seront pas perdues.
Le scénario
Utiliser
cycle_run.py
Exécutez-le avec la commande:
où:
<command>
est la commande pour exécuter l'application (sans--%u
-section, dans mon cas, copié du.desktop
fichier:/home/jacob/Downloads/Telegram/Telegram
)<cycle_time>
est le temps de cycle (total) en minutes (3 heures = 180 dans votre exemple)<application_run_time>
est le temps pendant lequel l'application doit s'exécuter en minutes (15 dans votre exemple)force
est un argument facultatif pour tuer de force l'application. Laissez-le simplement pour tuer l'application avec grâce .Exécution d'applications avec des arguments
Si vous exécutez une application avec des arguments, assurez-vous d'utiliser des guillemets autour de la commande pour exécuter l'application , par exemple:
Exécution d'applications minimisées ou dans le bac
Le démarrage et l'arrêt des applications périodiquement seront souvent nécessaires seulement minimisés et / ou dans le bac. Comme demandé par OP, quelques remarques à ce sujet:
Si une application propose de démarrer dans le bac à partir de la ligne de commande, utilisez simplement l'argument pour le faire. Dans le cas de
Telgram
, l'argument à utiliser est:bien que l'option ne semble pas fonctionner sur tous les systèmes (elle fonctionne sur le mien), comme mentionné ici . Vous devrez tester dans votre situation.
Si l'application n'offre pas l'option de ligne de commande au démarrage minimisé ou dans le bac, je suggère d'utiliser le (ce) script en combinaison avec celui ici (je suggère la
pid
version -), ce qui permettra le démarrage l'application minimisée.la source
Modifiez votre cron avec
crontab -e
et ajoutez cette ligne dans votre crontab pour l'exécuter en tant que tâche planifiée toutes les 3 heuresOuvrez votre terminal et tapez la commande ci-dessous
ouvrez killtelegram.sh avec votre éditeur favori et écrivez comme ci-dessous
Sauvegarder et quitter
c'est ça. Il s'ouvrira automatiquement toutes les 3 heures et il restera pendant 15 minutes et il sera tué.
la source