OVH Cloud OVH Cloud

Tache de fond

2 réponses
Avatar
François
Bonjour,
Quelle est la meilleure strat=E9gie
pour faire tourner un script Perl
en t=E2che de fond (lire un fichier,=20
faire un truc, =E9crire une ligne de log
et recommencer toutes les 10 mn)=20
sans utiliser de cronjob ?

Merci
Fran=E7ois

2 réponses

Avatar
Jean-Marc Salis
Bonjour,

La fonction "sleep" (dormir) fait cela très bien. On donne en argument
le nombre de secondes, dans le cadre de la question posée ce serait
"sleep 600".

Salutations.

--
Jean-Marc
-----------------
Jean-Marc Salis
Ch. du Cèdre 3b
1030 Bussigny

Tel.: +41 21 702 23 46
E-Mail:
Avatar
root
On Fri, 10 Oct 2003 11:07:55 +0200, François wrote:

Bonjour,
Quelle est la meilleure stratégie
pour faire tourner un script Perl
en tâche de fond (lire un fichier,
faire un truc, écrire une ligne de log
et recommencer toutes les 10 mn)
sans utiliser de cronjob ?



En faire un daemon ?

$ perldoc -q daemon

How do I fork a daemon process?

If by daemon process you mean one that's detached (disassoci-
ated from its tty), then the following process is reported to
work on most Unixish systems. Non-Unix users should check
their Your_OS::Process module for other solutions.

· Open /dev/tty and use the TIOCNOTTY ioctl on it. See
tty(4) for details. Or better yet, you can just use the
POSIX::setsid() function, so you don't have to worry about
process groups.

· Change directory to /

· Reopen STDIN, STDOUT, and STDERR so they're not connected
to the old tty.

· Background yourself like this:

fork && exit;

The Proc::Daemon module, available from CPAN, provides a func-
tion to perform these actions for you.