Merci d'abord a ceux qui m'ont deja repondu a mes nombreuses questions
;=) et qui du coup me font progresser dans mon apprentissage
En voici une nouvelle :
J'ai une application perl que je dois lancer toute les minutes par un
cron. J'aimerais ne plus la lancer par cron mais la transformer en daemon.
Actuellement, j'en suis a quand je la lance, elle ne me rends pas la
main mais bon fait son travail grace a une boucle et avec la commande
sleep pour ralentir la boucle.
En faite, j'aimerais ensuite la lancer par daemontools ou par /etc/init.d .
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Emmanuel Florac
Le Sun, 11 Dec 2005 08:33:54 +0100, Sameline a écrit :
Actuellement, j'en suis a quand je la lance, elle ne me rends pas la main mais bon fait son travail grace a une boucle et avec la commande sleep pour ralentir la boucle.
Pour qu'elle se "démonise", tu peux utiliser cette fonction :
sub daemonize {
chdir '/' or die "Impossible de changer de directory!";
open ( STDIN , '</dev/null' ) or die "impossible de rediriger STDIN : $!"); open ( STDERR , ">>/var/log/error.log") or die "impossible d'ouvrir le fichier d'erreur : $!"); open ( STDOUT , ">>/var/log/activity.log") or die "impossible d'ouvrir le fichier de log : $!");
fork and exit;
return 1; }
-- Toutes les organisations ont leur règles, et les Femmes Algériennes doivent avoir aussi leurs règles. Aït Ahmed.
Le Sun, 11 Dec 2005 08:33:54 +0100, Sameline a écrit :
Actuellement, j'en suis a quand je la lance, elle ne me rends pas la
main mais bon fait son travail grace a une boucle et avec la commande
sleep pour ralentir la boucle.
Pour qu'elle se "démonise", tu peux utiliser cette fonction :
sub daemonize {
chdir '/' or die "Impossible de changer de directory!";
open ( STDIN , '</dev/null' ) or die "impossible de rediriger STDIN :
$!");
open ( STDERR , ">>/var/log/error.log") or die "impossible d'ouvrir le
fichier d'erreur : $!");
open ( STDOUT , ">>/var/log/activity.log") or die "impossible d'ouvrir le
fichier de log : $!");
fork and exit;
return 1;
}
--
Toutes les organisations ont leur règles, et les Femmes Algériennes
doivent avoir aussi leurs règles.
Aït Ahmed.
Le Sun, 11 Dec 2005 08:33:54 +0100, Sameline a écrit :
Actuellement, j'en suis a quand je la lance, elle ne me rends pas la main mais bon fait son travail grace a une boucle et avec la commande sleep pour ralentir la boucle.
Pour qu'elle se "démonise", tu peux utiliser cette fonction :
sub daemonize {
chdir '/' or die "Impossible de changer de directory!";
open ( STDIN , '</dev/null' ) or die "impossible de rediriger STDIN : $!"); open ( STDERR , ">>/var/log/error.log") or die "impossible d'ouvrir le fichier d'erreur : $!"); open ( STDOUT , ">>/var/log/activity.log") or die "impossible d'ouvrir le fichier de log : $!");
fork and exit;
return 1; }
-- Toutes les organisations ont leur règles, et les Femmes Algériennes doivent avoir aussi leurs règles. Aït Ahmed.
Sameline
Merci ;=)
pourrais tu m'en dire un peu plus sur son principe ? j'ai du mal a la comprendre ;=)
surtout comment l'integrer a mon programme ? je lance cette sous routine a la fin de mon execution ?
Actuellement, j'en suis a quand je la lance, elle ne me rends pas la main mais bon fait son travail grace a une boucle et avec la commande sleep pour ralentir la boucle.
Pour qu'elle se "démonise", tu peux utiliser cette fonction :
sub daemonize {
chdir '/' or die "Impossible de changer de directory!";
open ( STDIN , '</dev/null' ) or die "impossible de rediriger STDIN : $!"); open ( STDERR , ">>/var/log/error.log") or die "impossible d'ouvrir le fichier d'erreur : $!"); open ( STDOUT , ">>/var/log/activity.log") or die "impossible d'ouvrir le fichier de log : $!");
fork and exit;
return 1; }
Merci ;=)
pourrais tu m'en dire un peu plus sur son principe ? j'ai du mal a la
comprendre ;=)
surtout comment l'integrer a mon programme ? je lance cette
sous routine a la fin de mon execution ?
Actuellement, j'en suis a quand je la lance, elle ne me rends pas la
main mais bon fait son travail grace a une boucle et avec la commande
sleep pour ralentir la boucle.
Pour qu'elle se "démonise", tu peux utiliser cette fonction :
sub daemonize {
chdir '/' or die "Impossible de changer de directory!";
open ( STDIN , '</dev/null' ) or die "impossible de rediriger STDIN :
$!");
open ( STDERR , ">>/var/log/error.log") or die "impossible d'ouvrir le
fichier d'erreur : $!");
open ( STDOUT , ">>/var/log/activity.log") or die "impossible d'ouvrir le
fichier de log : $!");
pourrais tu m'en dire un peu plus sur son principe ? j'ai du mal a la comprendre ;=)
surtout comment l'integrer a mon programme ? je lance cette sous routine a la fin de mon execution ?
Actuellement, j'en suis a quand je la lance, elle ne me rends pas la main mais bon fait son travail grace a une boucle et avec la commande sleep pour ralentir la boucle.
Pour qu'elle se "démonise", tu peux utiliser cette fonction :
sub daemonize {
chdir '/' or die "Impossible de changer de directory!";
open ( STDIN , '</dev/null' ) or die "impossible de rediriger STDIN : $!"); open ( STDERR , ">>/var/log/error.log") or die "impossible d'ouvrir le fichier d'erreur : $!"); open ( STDOUT , ">>/var/log/activity.log") or die "impossible d'ouvrir le fichier de log : $!");
fork and exit;
return 1; }
Sameline
Ok j'ai trouve et reussi via Proc::Daemon
Bonjour,
Merci d'abord a ceux qui m'ont deja repondu a mes nombreuses questions ;=) et qui du coup me font progresser dans mon apprentissage
En voici une nouvelle :
J'ai une application perl que je dois lancer toute les minutes par un cron. J'aimerais ne plus la lancer par cron mais la transformer en daemon.
Actuellement, j'en suis a quand je la lance, elle ne me rends pas la main mais bon fait son travail grace a une boucle et avec la commande sleep pour ralentir la boucle.
En faite, j'aimerais ensuite la lancer par daemontools ou par /etc/init.d .
Merci d'avance
Ok j'ai trouve et reussi via Proc::Daemon
Bonjour,
Merci d'abord a ceux qui m'ont deja repondu a mes nombreuses questions
;=) et qui du coup me font progresser dans mon apprentissage
En voici une nouvelle :
J'ai une application perl que je dois lancer toute les minutes par un
cron. J'aimerais ne plus la lancer par cron mais la transformer en daemon.
Actuellement, j'en suis a quand je la lance, elle ne me rends pas la
main mais bon fait son travail grace a une boucle et avec la commande
sleep pour ralentir la boucle.
En faite, j'aimerais ensuite la lancer par daemontools ou par /etc/init.d .
Merci d'abord a ceux qui m'ont deja repondu a mes nombreuses questions ;=) et qui du coup me font progresser dans mon apprentissage
En voici une nouvelle :
J'ai une application perl que je dois lancer toute les minutes par un cron. J'aimerais ne plus la lancer par cron mais la transformer en daemon.
Actuellement, j'en suis a quand je la lance, elle ne me rends pas la main mais bon fait son travail grace a une boucle et avec la commande sleep pour ralentir la boucle.
En faite, j'aimerais ensuite la lancer par daemontools ou par /etc/init.d .
Merci d'avance
Nicolas George
Emmanuel Florac wrote in message :
fork and exit;
Il manque un setsid.
Emmanuel Florac wrote in message
<pan.2005.12.11.08.46.42.541433@imaginet.fr>:
Le Sun, 11 Dec 2005 12:47:39 +0000, Nicolas George a écrit :
Il manque un setsid.
Je supputais que l'application était lancée avec un SID adapté dès le départ, mais on peut ajouter ça effectivement.
-- Si ça a l'air facile, c'est difficile. Si ça a l'air difficile, c'est carrément impossible. Si ça a l'air impossible, c'est un compilateur Ada. Théorème de Stockmayer.
Le Sun, 11 Dec 2005 12:47:39 +0000, Nicolas George a écrit :
Il manque un setsid.
Je supputais que l'application était lancée avec un SID adapté dès le
départ, mais on peut ajouter ça effectivement.
--
Si ça a l'air facile, c'est difficile. Si ça a l'air difficile, c'est
carrément impossible. Si ça a l'air impossible, c'est un compilateur
Ada.
Théorème de Stockmayer.
Le Sun, 11 Dec 2005 12:47:39 +0000, Nicolas George a écrit :
Il manque un setsid.
Je supputais que l'application était lancée avec un SID adapté dès le départ, mais on peut ajouter ça effectivement.
-- Si ça a l'air facile, c'est difficile. Si ça a l'air difficile, c'est carrément impossible. Si ça a l'air impossible, c'est un compilateur Ada. Théorème de Stockmayer.
Emmanuel Florac
Le Sun, 11 Dec 2005 10:00:14 +0100, Sameline a écrit :
pourrais tu m'en dire un peu plus sur son principe ? j'ai du mal a la comprendre ;=)
Elle change le répertoire de travail en '/' pour ne pas poser de
problème de montages. Elle redirige les entrées et sorties du programme vers des fichiers, ce qui le déconnecte du terminal courant. Ensuite, elle forke le programme pour le détacher tout à fait de son processus père.
surtout comment l'integrer a mon programme ? je lance cette sous routine a la fin de mon execution ?
En général, quand on veut créer un démon on veut plutôt le faire au tout début de l'éxécution qu'à la fin...
-- Le travail est la malédiction des classes qui boivent. O. Wilde.
Le Sun, 11 Dec 2005 10:00:14 +0100, Sameline a écrit :
pourrais tu m'en dire un peu plus sur son principe ? j'ai du mal a la
comprendre ;=)
Elle change le répertoire de travail en '/' pour ne pas poser de
problème de montages.
Elle redirige les entrées et sorties du programme vers des fichiers, ce
qui le déconnecte du terminal courant.
Ensuite, elle forke le programme pour le détacher tout à fait de son
processus père.
surtout comment l'integrer a mon programme ? je lance cette
sous routine a la fin de mon execution ?
En général, quand on veut créer un démon on veut plutôt le faire au
tout début de l'éxécution qu'à la fin...
--
Le travail est la malédiction des classes qui boivent.
O. Wilde.
Le Sun, 11 Dec 2005 10:00:14 +0100, Sameline a écrit :
pourrais tu m'en dire un peu plus sur son principe ? j'ai du mal a la comprendre ;=)
Elle change le répertoire de travail en '/' pour ne pas poser de
problème de montages. Elle redirige les entrées et sorties du programme vers des fichiers, ce qui le déconnecte du terminal courant. Ensuite, elle forke le programme pour le détacher tout à fait de son processus père.
surtout comment l'integrer a mon programme ? je lance cette sous routine a la fin de mon execution ?
En général, quand on veut créer un démon on veut plutôt le faire au tout début de l'éxécution qu'à la fin...
-- Le travail est la malédiction des classes qui boivent. O. Wilde.