php скрипты и nautilus
shiriy 11 декабря, 2008 - 11:43
Когда запускаю php скрипт (не под апачем, а через cli), то после его выполнения виснет nautilus секунд на 30.
Всвязи с чем такое может быть?
»
- Для комментирования войдите или зарегистрируйтесь
А если попробовать в консоли
А если попробовать в консоли - что происходит, что пишет?
30 секунд - это ограничение на время работы скрипта, для исключения ситуаций зависания. То есть у тебя скрипт чего-то ждёт или виснет, а php его тупо рубит
-= Concordia victoriam gignit =-
Так я в консоли и пишу php
Так я в консоли и пишу
php my_script.php
скрипт отрабатывает корректно и выходит (судя по консоли), а наутилус висит после этого... Как наутилус может быть связан с консолью и пыхом - это для меня вопрос...
Мда... :( Ты меня не
Мда... :(
Ты меня не понял.
Цитирую заголовок пых-пых скрипта, написаннного в рассчёте на выполнение из CLI (его запуск так, чтобы он ещё работал - вообще отдельная песня, в этот оффтопик пока углубляться не буду):
И другой скрипт, рассчитанный на Индейца (оба файла типа .php):
Из того, что скрипт не пишет ничего в
stdout
(или дажеstderr
) ещё не следует того факта, что он отработал корректно.Поведение Наутилуса лично для меня - вообще загадка.
Есть подозрение, что его поведение объясняется функциональностью (содержимым) запускаемого скрипта.
ЗЫ: Извини. С учётом последнего комментария мои замечания теряют актуальность.
Наутилус в режиме браузера? URL?
:wq
--
Live free or die
Да нет, скрипт написан лично
Да нет, скрипт написан лично мной для cli (первый вариант). А вообще разница в версии для апача и cli небольшая.
Рабоает он корректно, т.к. во время написания я всё всегда тестирую, так что в этом точно не промахнулся. Запросов или чего там ещё к наутилусу нет, только к данной директории (из неё читаются файлы и записываются в неё файлы).
Само собой, в стандартный вывод он писать ничего не должен, но он пишет, чтобы мне было понятно, завис он или нет ).
Если бы были какие критические ошибки, то в терминале он бы показал это (протестировано во время написания скриптов).
Не, наутилус в режиме просмотра урлов я ещё ниразу не запускал ))) и, честно говоря, даже не знаю... это же не конкверор )
Вставь в скрипт die
Вставь в скрипт
и переноси его с начала скрипта по несколько команд вперёд, чтобы отловить где происходит зависание.
Может он виснет вообще на
-= Concordia victoriam gignit =-
ещё раз повторю - сам скрипт
ещё раз повторю - сам скрипт не виснет, отрабатывает своё и заканчивается приглашением ввести новую команду в консоли.
А мне не нужно чтобы скрипт
А мне не нужно чтобы скрипт отработал полностью, мне нужно отловить момент когда наутилус виснет, а когда нет.
После Hello, World он виснет?
После одной строчки твоего скрипта висне?
После трёх? Десяти?
После какой команды происходит зависание?
-= Concordia victoriam gignit =-
и вот этим die ("123"); я
и вот этим
я отловлю то место, с которого зависает наутилус?
Можно просто комментировать
Можно просто комментировать остаток скрипта, если это удобнее
-= Concordia victoriam gignit =-
ну, похоже вычленил место,
ну, похоже вычленил место, где пых наутилус вешает...
буду думать, что там не так... )
.
А процитировать? :)
:wq
--
Live free or die
.
Ну вот... Я же специально сделал оговорку на предмет существенной зависимости степени отличия от функциональности...
Предлагаю пофлеймить на этот счёт :)
Какой каталог смотришь в этот момент?
:wq
--
Live free or die
А что флеймить-то ))) Я
А что флеймить-то )))
Я только одно отличие помню - это то, что в cli режиме пых не работает с относительными ссылками на файлы, т.е. нельзя написать например
$fd=fopen("somefile");
, нужно писать$fd=fopen("/some/directiry/somefile");
ну например сейчас открыт в наутилусе /home/user/Desktop, но это же не урл.
На самом деле это не так -
На самом деле это не так - апач просто автоматически переходит в каталог, где исполняется скрипт, а php сам по себе этого не делает:
-= Concordia victoriam gignit =-
???
Да?
А мне почему-то казалось, что в случае Индейца указываются пути относительно
DocumentRoot
(ну и с учётом Alias'ов)...:wq
--
Live free or die
Пути указываются относительно
Пути указываются относительно каталога в котором лежит файл запрошенного скрипта
include и request меняют каталог, но думаю это справедливо и для cli.
Сейчас сделаю эксперимент ))
-= Concordia victoriam gignit =-
.
А... Понял.
Это если использовать спецсимволы (типа '
.
', коя, как известно, обозначает в данном случае текущий каталог).:wq
--
Live free or die
без './' каталог в php тоже
без './' каталог в php тоже будет текущим
-= Concordia victoriam gignit =-
Всё-таки по include в cli
Всё-таки по include в cli режиме смены каталога не происходит, в апаче сейчас протестировать не могу, глючит форвардинг на серваке и не могу понять в чём фишка, а из-за этого не могу нормально работать со своим сервером
-= Concordia victoriam gignit =-
.
На самом деле этот момент значит немного не то :) Уже объяснили.
Например - ситуация, когда для корректного выполнения php-скрипта необходимо задание правильного значения некоторой переменной (старая песня о главном: Oracle && TNS_ADMIN).
:wq
--
Live free or die
Вот и я не пойму, каким боком
удалено
-= Concordia victoriam gignit =-
Я бы рекомендовал раскрыть
Я бы рекомендовал раскрыть тему:
Что за скрипт (в смысле - формат; мой личный опыт говорит, что, формат скрипта www и запуска из cli мягко говоря "несколько" различаются, хотя есть подозрение, что степень различия существенно аврьируется в зависимости от функциональности)?
Как запускается?
Что он делает (должен делать) и корректно ли отрабатывает?
:wq
--
Live free or die
Скрипт - обычный
Скрипт - обычный php
Про формат не понял, обычный скрипт на пыхе.
Запускается вручную: захожу в директорию, где он лежит и запускаю:
php my_script.php
Скрипт обрабатывает логи апача на предмет нужной мне информации и создаёт файл с результатом, по ходу выдаёт в консоль инфу (что конкретно сейчас делает, чтоб мне не скучно было полторы минуты в монитор пялиться), завершается корректно. Но висит после этого именно наутилус а не пых, это в htop'е ясно видно, через десяток-другой секунд (точно не засекал) наутилус отвисает...