2016-04-30 3 views
0

Я просто пишу перл программа для целей автоматизации с помощью CronНе работает программа perl для автоматизации cron?

мой хрон является

*/30 * * * * perl /path/to/cron.pl 

cron.pl

#!/usr/bin/perl 
use strict; 
use warnings; 

`/usr/bin/perl /path/to/run.pl`; 

Внутри кода я запускаю другую программу на языке Perl, используя обратно клеща.

run.pl

#!/usr/bin/perl 
use strict; 
use warnings; 

open(FL,">text.txt") or die $!; 

print FL "hi"; 

close FL; 

Всякий раз, когда я бегу cron.pl он создал файл "text.txt". Но cron запускает программу cron.pl, но run.pl не запускается. Может ли кто-нибудь сказать мне, что я сделал неправильно в коде?

+4

Обязательный комментарий: всегда ставьте 'use strict;' и 'use warnings;' в верхней части каждого скрипта Perl. Вероятно, ваша проблема связана с использованием относительного пути при вызове 'run.pl'. Попробуйте использовать абсолютный путь к интерпретатору Perl и сценарию: '/ usr/bin/perl/absolute/path/to/run.pl'; – bart

+0

@bart Спасибо за ваш комментарий. Я использую строгое использование и использование предупреждения, после чего я добавил абсолютный путь в эту программу, но все же он не работает. – SSN

+2

Как знать, run.pl не выполняется? Этот скрипт открывает дескриптор файла в режиме чтения, но следующая строка пытается его записать, что не сработает. –

ответ

0

Ваша строка cron должна содержать полный путь к исполняемому файлу!

*/30 * * * * /usr/bin/perl /path/to/cron.pl 
Смежные вопросы