konto usunięte
Temat: Problem z wywołaniem skryptu przez crona
Witam,mam taki dziwny problem, że skrypt wywołany z powłoki (sudo perl skrypt) działa bez problemu, natomiast z crona nie chce działać.
Mam taki kawałek w skrypcie:
1 #!/usr/bin/perl
2
3 #
4 # Konfiguracja w pliku check_service.conf
5 #
6 #
7
8 use warnings;
9 use strict;
10 use lib '/root/';
11 use Common;
12
13 open my $config, "<", "/root/tests/check_service.conf" or die "Can not read check_service.conf: $!";
14
15 while (my $line = <$config>) {
16 chomp ($line);
17
18 next if $line =~ /^\s*#/; # komentarz
19 next if $line =~ /^\s*$/; # pusta linia
20
21 my $service = $line;
22
23 my $ps_output = `ps ax | grep "$service" | grep -v $0 | grep -v grep`;
24 if ($ps_output eq "") { # nie ma usĹ~Bugi
25 print "$service IS NOT WORKING\n";
26 Common::alert_sms($service);
27 Common::alert_mail("$service\@$Common::hostname IS NOT WORKING", "$service\@$Common::hostname IS NOT WORKING");
30 }
31 else {
32 print "$service is working\n";
33 }
34
35 }
Skrypt sprawdza, czy pewien proces żyje. Jeśli tak, nie robi nic, jeśli nie, wysyła smsa. Problem jest taki, że odpalany co minutę z crona nie działa - w ogóle nie wchodzi do tego warunku. Uruchamiając skrypt z konsoli ZAWSZE działa.
W cronie uruchamiam go tak:
*/1 * * * * root perl /root/tests/check_service
Co ciekawe - na innym serwerze, identyczny skrypt, tylko sprawdzający inny proces, działa prawidłowo z crona... Już nie wiem gdzie szukać błędu. W logu crona widać, że skrypt uruchamia się normalnie.
Z góry dziękuję za pomoc.
Pozdrawiam,
TJTomasz Jurczyk edytował(a) ten post dnia 13.03.10 o godzinie 20:22