Bonjour,
Voila, je me suis fait un petit script me permettant de tester si ma connexion MySQL est toujours active ou non et dans ce cas, en cas de retour, je redémarre un logiciel.
Je suis débutant sur PERL, donc je ne connais pas encore toutes les astuces de ce langage ...
Voici le code qui me pose problème :
1 2 3 4 5 6 7 8 9
| my $dbh = DBI->connect( "DBI:mysql:database=$database;host=$hostname", $login, $mdp )
or panneSQL("Impossible de se connecter au serveur MySQL");
if ( $sqlError == 1 ) {
unlink( $f_mysql ) ;
my $retour = system( "/etc/init.d/xxxxxxxx restart" ) ;
sendMail() ;
die "";
} |
Ce script tourne en CRON. Le problème, c'est que dés lors que le script m'envoie un email, j'ai aussi le retour de script de mon crontab :
Dans le cas où la connexion MySQL ne marche pas :
DBI connect('database=XXXXXXX;host=XXXXXXX','XXXXXXXXXX',...) failed: Access denied for user 'XXXXXXXXXXX'@'%' to database 'XXXXXXXXXX' at /home/XXXXXXXXX/perl/checkStart line 83 Died at /home/XXXXXXXXXX/perl/checkStart line 38.
En cas de retour de la connexion MySQL :
1 2 3
| Stopping XXXXXXX: M4UClient/etc/init.d/XXXXXXX: line 39: start-stop-daemon: command not found .
Starting XXXXXXX: XXXXXXX/etc/init.d/XXXXXXX: line 30: start-stop-daemon: command not found failed!
Died at /home/XXXXXXX/perl/checkStart line 90. |
Je ne sais pas comment faire pour rendre muet PERL sans le passer en DAEMON ... En plus, il aime pas executer un script shell de restart ...
Merci d'avance pour votre aide.
Partager