Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Операционные системы » UNIX » Запись в log-файл в bash скрипте

Модерирует : ShriEkeR

 Версия для печати • ПодписатьсяДобавить в закладки

Открыть новую тему     Написать ответ в эту тему

MSKadabrik

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Имеется скрипт, мониторящий в бесконечном цикле php-процессы. Следит за их памятью, убивает\запускает. Свои действия пишет в лог-файл. Так вот столкнулся с такой проблемой: после команды запуска php-скрипта прекращается любая запись в лог.
 
 

Код:
echo "starting new server.." >> $logfile
php -q /home/kadabrik/webroot/test/index.php server_start=request_start >> /dev/null &
 

 
 
Хотя сам скрипт благополучно висит дальше в памяти, выполняет свою работу, но молчит как партизан. Строка "starting new server.." будет последней в логе. Если запускать php-процессы не требуется, то он будет успешно писать в лог все, что нужно.
 
В чем здесь проблема, чего я недопонимаю?

Всего записей: 5 | Зарегистр. 13-12-2008 | Отправлено: 20:13 18-11-2009
SysCommander

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Код:
>> /dev/null

 
Это и есть как раз перенаправление stdout в никуда. Каким образом вывод попадет в лог файл если он явным образом перенаправляется в /dev/null?

Всего записей: 421 | Зарегистр. 20-07-2007 | Отправлено: 03:08 19-11-2009
vlader2004



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
MSKadabrik
 
эти две строки говорят о том, что в лог пишется только информация о старте твоего скрипта. Если ты хочешь, чтобы писалась активность - это нужно делать внутри скрипта отдельно.
 
Кроме прочего, вот так >> /dev/null обычно запускают те задачи, результат работы которых предсказуем и неинтересен. В твоем случае желательно читать как минимум ошибки, потому
 
php -q /home/kadabrik/webroot/test/index.php server_start=request_start >>$logfile 2>>$logfile &
 
будет правильнее.

Всего записей: 460 | Зарегистр. 31-05-2004 | Отправлено: 07:11 19-11-2009
MSKadabrik

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Мне как раз не надо знать, чего там выдает php-скрипт. Вот мой скрипт полностью: http://paste.org.ru/?pd0ns4 . Может так понятнее станет. Интересют меня именно те сообщения, которые я сам вывожу в логе.
 
Добавлено:
И еще добавлю. Пробовал вариации:

Код:
php -q /home/kadabrik/webroot/test/index.php server_start=request_start >>$logfile 2>>$logfile &  

и

Код:
php -q /home/kadabrik/webroot/test/index.php server_start=request_start >>$phplog 2>>$logfile &  

 
В результате от php скрипта никакого вывода все равно нет (по идее и не должно быть), а поведение вывода сообщений моего скрипта в лог остается на прежнем уровне. Т.е. после запуска php скрипт отказывается дописывать что-либо в лог путем echo "smth" >> $logfile

Всего записей: 5 | Зарегистр. 13-12-2008 | Отправлено: 11:00 19-11-2009
Открыть новую тему     Написать ответ в эту тему

Компьютерный форум Ru.Board » Операционные системы » UNIX » Запись в log-файл в bash скрипте


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru