Вот загадка, с которой, надеюсь, ты мне поможешь. Клиент хочет отправить приветственное письмо ровно через 47 минут после загрузки документа через скрипт cgi. Я написал процедуру для отправки письма, а затем попытался использовать команду Linux «at» для ее выполнения.
Когда это не сработало, я настроил следующий тест в каталоге / cgi-bin.
************ Суть в том, что команда "at" не будет работать при вызове из apache. Есть ли способ обойти это?
Спасибо,
Роб Янг
TEST FILES --------------------------------------------------------------------------- $> cat test1.pl #!/usr/bin/perl #THIS IS A TEST OF THE "at" LINUX COMMAND WHEN CALLED FROM WITHIN APACHE print "Content-type: text/html\n\n"; my @lt=localtime(time()+60); my $cmd="echo '/path/to/test2.pl' | at $lt[2]:$lt[1]"; print $cmd; system($cmd); $> cat test2.pl #!/usr/bin/perl my $cmd="echo 'it ran!'>it_ran.txt"; system($cmd); COMMAND LINE DEMONSTRATION ------------------------------------------------------------------ $> rm it_ran.txt rm: cannot remove `it_ran.txt': No such file or directory $> ./test1.pl Content-type: text/html echo '/path/to/test2.pl' | at 20:28job 55 at 2011-08-15 20:28 $> atq 55 2011-08-15 20:28 a ryoung $> date Mon Aug 15 20:27:11 CDT 2011 $> cat it_rat.txt cat: it_rat.txt: No such file or directory $> date Mon Aug 15 20:28:01 CDT 2011 $> cat it_ran.txt it ran! APACHE DEMONSTRATION ------------------------------------------------------------------------------------------ Then I call the same script by browsing to http://www.MYSERVER.com/cgi-bin/test1.pl [browser output: echo '/path/to/test2.pl' | at 20:30 ] $> date Mon Aug 15 20:30:40 CDT 2011 $> cat it_ran.txt cat: it_ran.txt: No such file or directory
Укажите полный путь к at
в сценарии. Не говоря уже о вашем it_ran.txt
файл. Откуда вообще знать, где этот файл должен храниться? Вероятно, он пытается записаться в корневой каталог и терпит неудачу.
Вы должны использовать проверка ошибок. Проверьте код результата системной команды или у себя.
Программы и вызовы возвращают ошибки, чтобы помочь вам надлежащим образом обрабатывать исключения.