Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Démarrer et arrêter automatiquement un programme

10 réponses
Avatar
Franssoa
Bonjour,

Je voudrais savoir comment démarrer un programme et l'arrêter
automatiquement à une heure donnée.

Le but étant de faire tourner bittorrent aux heures ou je n'utilise pas
mon réseau, soit pour être très large de minuit à 9h00.

Est-ce une bonne idée de le lancer avec un cron à minuit, puis à 9h00
lancer un kill en récupérant l'id d'une façon ou d'une autre ?
--
Franssoa

10 réponses

Avatar
lhabert
Franssoa :

Est-ce une bonne idée de le lancer avec un cron à minuit, puis à 9h00
lancer un kill en récupérant l'id d'une façon ou d'une autre ?


Pourquoi pas. Sauf que si le truc est mort entre temps, et qu'un autre
process créé après sa mort a reçu ce pid, tu killes le mauvais. Tu peux
utiliser un truc comme supervise (http://cr.yp.to/daemontools/supervise.html)
pour faire ça plus fiablement.

Avatar
Franssoa
Franssoa :

Est-ce une bonne idée de le lancer avec un cron à minuit, puis à 9h00
lancer un kill en récupérant l'id d'une façon ou d'une autre ?


Pourquoi pas. Sauf que si le truc est mort entre temps, et qu'un autre
process créé après sa mort a reçu ce pid, tu killes le mauvais. Tu peux
utiliser un truc comme supervise (http://cr.yp.to/daemontools/supervise.html)
pour faire ça plus fiablement.

En fait je pensais ne récupérer le pid qu'au moment du kill, en

analysant la sortie du grep.

#! /usr/bin/env python
import os, signal
pid = None
for res in os.popen("grep -ax"):
if "btdownload" in res:
pid = int(res.list()[0])
if pid:
os.kill(pid, signal.SIGINT)

Évidemment, cela suppose qu'il n'y ai qu'une instance du programme à
killer. Une autre impossibilité est de garder le pid au lancement du
programme, puis par la même méthode vérifier que le pid est toujours
attribué à ce programme.
--
Franssoa


Avatar
Franssoa
Franssoa :

Est-ce une bonne idée de le lancer avec un cron à minuit, puis à 9h00
lancer un kill en récupérant l'id d'une façon ou d'une autre ?


Pourquoi pas. Sauf que si le truc est mort entre temps, et qu'un autre
process créé après sa mort a reçu ce pid, tu killes le mauvais. Tu peux
utiliser un truc comme supervise
(http://cr.yp.to/daemontools/supervise.html)
pour faire ça plus fiablement.

En fait je pensais ne récupérer le pid qu'au moment du kill, en

analysant la sortie du grep.

#! /usr/bin/env python
import os, signal
pid = None
for res in os.popen("grep -ax"):
if "btdownload" in res:
pid = int(res.list()[0])
# arghhh !!

pid = int(res.split()[0])

if pid:
os.kill(pid, signal.SIGINT)

Évidemment, cela suppose qu'il n'y ai qu'une instance du programme à
killer. Une autre impossibilité est de garder le pid au lancement du
programme, puis par la même méthode vérifier que le pid est toujours
attribué à ce programme.



--
Franssoa



Avatar
Sébastien Monbrun aka TiChou
Dans le message <news:45f7f425$0$3809$,
*Franssoa* tapota sur f.c.o.l.configuration :

[...]

Je ne vois pas trop l'intérêt de tout ça. Ça ne serait pas plus simple
d'utiliser les commanndes 'killall' ou 'pkill' ?

0 0 * * * killall -q -u "$USER" -0 btdownload || btdownload
0 9 * * * killall -q -u "$USER" -TERM btdownload ; sleep 5 ; killall -q -u
"$USER" -KILL btdownload

--
Sébastien Monbrun aka TiChou
Avatar
Franssoa

Je ne vois pas trop l'intérêt de tout ça.
Uniquement que je ne connais(sait) pas d'autre solution(s).


Ça ne serait pas plus simple
d'utiliser les commanndes 'killall' ou 'pkill' ?
[...]
Si sûrement. Je vais donc regarder les pages man de killall et pkill

pour comprendre ton entrée cron.

Merci du coup de main
--
Franssoa

Avatar
Fabien LE LEZ
On Wed, 14 Mar 2007 12:51:30 +0100, Franssoa :

Le but étant de faire tourner bittorrent aux heures ou je n'utilise pas
mon réseau,


T'as pas moyen de mettre un petit peu de QoS, pour que bittorrent ne
gêne pas les autres applications ?

Avatar
Franssoa
On Wed, 14 Mar 2007 12:51:30 +0100, Franssoa :

Le but étant de faire tourner bittorrent aux heures ou je n'utilise pas
mon réseau,


T'as pas moyen de mettre un petit peu de QoS, pour que bittorrent ne
gêne pas les autres applications ?


si, je pourrais limiter la bande passante. Mais je préfère disposer la
journée de toute la bande possible pour autre chose que bt, et la nuit
je dors (pas assez, bien sur).
--
Franssoa


Avatar
Fabien LE LEZ
On Wed, 14 Mar 2007 17:55:08 +0100, Franssoa :

T'as pas moyen de mettre un petit peu de QoS, pour que bittorrent ne
gêne pas les autres applications ?


si, je pourrais limiter la bande passante.


Quel rapport ?
Je te parle de baisser la priorité de bittorrent.
http://en.wikipedia.org/wiki/Quality_of_service


Avatar
Franssoa
On Wed, 14 Mar 2007 17:55:08 +0100, Franssoa :

T'as pas moyen de mettre un petit peu de QoS, pour que bittorrent ne
gêne pas les autres applications ?
si, je pourrais limiter la bande passante.



Quel rapport ?
Je te parle de baisser la priorité de bittorrent.
http://en.wikipedia.org/wiki/Quality_of_service

oops, désolé, je n'avais pas compris :-(

Bon, ben je vais aller faire un petit tour sur google pour voir comment
on fait ça, si c'est applicable sur mon reseau et si ça peu me convenir.
--
Franssoa



Avatar
Mihamina (R12y) Rakotomandimby
Franssoa wrote:

Bon, ben je vais aller faire un petit tour sur google pour voir comment


Une piste que je n'ai toujours pas testé mais que je sais qui existe depuis
belle lurette. J eme demande meme si c'est encore maintenu:
http://lartc.org/