Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Perl: Системное программирование > Не работает Proc::Daemon на Oracle Solaris 10 9/10


Автор: Antoniously 29.6.2011, 18:48
Привет

Пробую запустить даемон для одной задачки на Oracle Solaris 10 9/10, он запускается, но ничего в лог не пишется об исполнении.

Пакет Proc-Daemon-0.14. Пробовал разные, но безуспешно.

Код простой (для теста):

#!/usr/bin/perl -w
use Proc::Daemon;
Proc::Daemon::Init;
while ("true") {
system "date >> date.log";
sleep 1;
}

Может подскажет кто что делать? Очень нужно

Заранее спасибо smile 

Автор: OutlawZ 29.6.2011, 19:15
Нет возможности установить модуль но попробуйте так:

Код

#!/usr/bin/perl -w
use Proc::Daemon;
$true = Proc::Daemon::Init;
while (defined($true)) {
system "date >> date.log";
sleep 1;
}



Или задать if после инициализации  демона , дать переменной $true = 1; и по результатам если 1 то пишем если 0 то провал.

Автор: Pfailed 29.6.2011, 19:35
Antoniously, на то он и демон, что stdin и stdout закрываются или куда-то перенаправляются. Читайте документацию.

Автор: Antoniously 29.6.2011, 21:58
Цитата(OutlawZ @ 29.6.2011,  19:15)
Нет возможности установить модуль но попробуйте так:

Код

#!/usr/bin/perl -w
use Proc::Daemon;
$true = Proc::Daemon::Init;
while (defined($true)) {
system "date >> date.log";
sleep 1;
}



Или задать if после инициализации  демона , дать переменной $true = 1; и по результатам если 1 то пишем если 0 то провал.

Я совсем чайник smile 
Пробовал вот так:
#!/usr/bin/perl -w
use Proc::Daemon;
$true = Proc::Daemon::Init;
print "$true\n\n";
$true = 1;
while (defined($true)) {
if ($true == 1) {
system "date >> date.log";
}
sleep 1;
}

но всё так же, только скрипт не уходит в процесс. Лог не пишется smile 

Надо чтоб уходил в фон (в процесс) и писался лог, не получается smile  smile  smile 

но всё равно, спасибо за участие в решение проблемы smile 

Автор: OutlawZ 29.6.2011, 22:44
Pfailed посоветовал вам прочитать документацию по модулю perldoc Proc::Daemon , если плохо с английским используйте on-line переводчики они донесут смысл. 

Автор: Pfailed 30.6.2011, 07:16
stdin & stdout в вашем случае ни при чем. Демон при старте меняет рабочую директорию на корневую, а вы указываете относительный путь к файлу . Указывайте абсолютный путь.

Автор: Antoniously 30.6.2011, 18:04
Цитата(Pfailed @ 30.6.2011,  07:16)
stdin & stdout в вашем случае ни при чем. Демон при старте меняет рабочую директорию на корневую, а вы указываете относительный путь к файлу . Указывайте абсолютный путь.

Вот этот совет действительно помог. Спасибо smile

Добавлено через 2 минуты и 18 секунд
Вопрос закрыт

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)