OVH Cloud OVH Cloud

perl et cron

1 réponse
Avatar
Fabrice L.
bonsoir,

désolé d'avance, car je sens que je vais encore etre HS...

J'ai un script perl qui lance une commande system()

## monscript.pl

#!/usr/bin/perl

## un peu de traitement
else {

$jeux = $ARGV[0];
$port = $ARGV[1];
$players = $ARGV[2];
$map= $ARGV[3];

system("/usr/bin/nohup /home/sv01_04/hlds_run -game $jeux +port $port +map
$map +maxplayers $players &");

}

## fin du script


il fonctionne tres bien quand je le lance en ligne de commande mais pas
quand c cron qui le lance.

la ligne crontab

*/1 * * * * /home/sv01_04/monscript.pl


J'ai lu certains articles sur fclp concernant perl et cron et bcp d'erreur
étaient du aux 'paths' utilisés. J'ai donc mis les chemins absolus mais rien
n"y fait.

Une idée ?

Merci d'avance
Fabrice

1 réponse

Avatar
Alain BARBET
désolé d'avance, car je sens que je vais encore etre HS...


Exact.

J'ai un script perl qui lance une commande system()
...

system("/usr/bin/nohup /home/sv01_04/hlds_run -game $jeux +port $port +map
$map +maxplayers $players &");

il fonctionne tres bien quand je le lance en ligne de commande mais pas
quand c cron qui le lance.

la ligne crontab

*/1 * * * * /home/sv01_04/monscript.pl


J'ai lu certains articles sur fclp concernant perl et cron et bcp d'erreur
étaient du aux 'paths' utilisés. J'ai donc mis les chemins absolus mais rien
n"y fait.

Une idée ?


Ahlalalala, un jour tu decouvrira man et perldoc.
Bon alors ....

perldoc -f system
my $str = "/usr/bin/nohup /home/sv01_04/hlds_run -game $jeux +port $port
+map $map +maxplayers $players &";

system($str) == 0
or die "system $str failed: $?"

Comme ca tu sauras ....
De plus actuellement la sortie du programme est redirigee vers un mail
de l'utilisateur de ta crontab. Donc soit tu regardes ses mails, soit tu
fais

*/1 * * * * /home/sv01_04/monscript.pl >/home/sv01_04/file.log
2>/home/sv01_04/file.err

(tout sur une ligne).

Tu sauras alors pourquoi ca plante en regardant dans le fichier file.err