php скрипты и nautilus

Когда запускаю php скрипт (не под апачем, а через cli), то после его выполнения виснет nautilus секунд на 30.
Всвязи с чем такое может быть?

А если попробовать в консоли

А если попробовать в консоли - что происходит, что пишет?
30 секунд - это ограничение на время работы скрипта, для исключения ситуаций зависания. То есть у тебя скрипт чего-то ждёт или виснет, а php его тупо рубит

-= Concordia victoriam gignit =-

Так я в консоли и пишу php

Так я в консоли и пишу
php my_script.php
скрипт отрабатывает корректно и выходит (судя по консоли), а наутилус висит после этого... Как наутилус может быть связан с консолью и пыхом - это для меня вопрос...

Мда... :( Ты меня не

Мда... :(
Ты меня не понял.

Цитирую заголовок пых-пых скрипта, написаннного в рассчёте на выполнение из CLI (его запуск так, чтобы он ещё работал - вообще отдельная песня, в этот оффтопик пока углубляться не буду):

<?
include
...
?>

И другой скрипт, рассчитанный на Индейца (оба файла типа .php):

<html>
<head><title>page</title></head>
<body>
<script language="Javascript">
...
<?
include(
...
?>
...
<?
...
?>
...

Из того, что скрипт не пишет ничего в stdout (или даже stderr) ещё не следует того факта, что он отработал корректно.

Поведение Наутилуса лично для меня - вообще загадка.
Есть подозрение, что его поведение объясняется функциональностью (содержимым) запускаемого скрипта.

ЗЫ: Извини. С учётом последнего комментария мои замечания теряют актуальность.
Наутилус в режиме браузера? URL?

:wq
--
Live free or die

Да нет, скрипт написан лично

Да нет, скрипт написан лично мной для cli (первый вариант). А вообще разница в версии для апача и cli небольшая.
Рабоает он корректно, т.к. во время написания я всё всегда тестирую, так что в этом точно не промахнулся. Запросов или чего там ещё к наутилусу нет, только к данной директории (из неё читаются файлы и записываются в неё файлы).
Само собой, в стандартный вывод он писать ничего не должен, но он пишет, чтобы мне было понятно, завис он или нет ).
Если бы были какие критические ошибки, то в терминале он бы показал это (протестировано во время написания скриптов).
Не, наутилус в режиме просмотра урлов я ещё ниразу не запускал ))) и, честно говоря, даже не знаю... это же не конкверор )

Вставь в скрипт die

Вставь в скрипт

die ("123");

и переноси его с начала скрипта по несколько команд вперёд, чтобы отловить где происходит зависание.
Может он виснет вообще на

<?php 
    echo "hello, world!"; 
?>

-= Concordia victoriam gignit =-

ещё раз повторю - сам скрипт

ещё раз повторю - сам скрипт не виснет, отрабатывает своё и заканчивается приглашением ввести новую команду в консоли.

А мне не нужно чтобы скрипт

А мне не нужно чтобы скрипт отработал полностью, мне нужно отловить момент когда наутилус виснет, а когда нет.
После Hello, World он виснет?
После одной строчки твоего скрипта висне?
После трёх? Десяти?
После какой команды происходит зависание?

-= Concordia victoriam gignit =-

и вот этим die ("123"); я

и вот этим

die ("123");

я отловлю то место, с которого зависает наутилус?

Можно просто комментировать

Можно просто комментировать остаток скрипта, если это удобнее

-= Concordia victoriam gignit =-

ну, похоже вычленил место,

ну, похоже вычленил место, где пых наутилус вешает...
буду думать, что там не так... )

.

shiriy написал(а):
ну, похоже вычленил место, где пых наутилус вешает...
буду думать, что там не так... )

А процитировать? :)

:wq
--
Live free or die

.

shiriy написал(а):
Да нет, скрипт написан лично мной для cli (первый вариант). А вообще разница в версии для апача и cli небольшая.

Ну вот... Я же специально сделал оговорку на предмет существенной зависимости степени отличия от функциональности...
Предлагаю пофлеймить на этот счёт :)

shiriy написал(а):
Не, наутилус в режиме просмотра урлов я ещё ниразу не запускал ))) и, честно говоря, даже не знаю... это же не конкверор )

Какой каталог смотришь в этот момент?

:wq
--
Live free or die

А что флеймить-то ))) Я

А что флеймить-то )))
Я только одно отличие помню - это то, что в cli режиме пых не работает с относительными ссылками на файлы, т.е. нельзя написать например $fd=fopen("somefile");, нужно писать $fd=fopen("/some/directiry/somefile");

Anarchist написал(а):
Какой каталог смотришь в этот момент?

ну например сейчас открыт в наутилусе /home/user/Desktop, но это же не урл.

На самом деле это не так -

На самом деле это не так - апач просто автоматически переходит в каталог, где исполняется скрипт, а php сам по себе этого не делает:

stalker@stalkyard ~ $ mkdir test
stalker@stalkyard ~ $ cd test
stalker@stalkyard ~/test $ echo 123 > test.txt
stalker@stalkyard ~/test $ cat test.php 
<?php

    $f = fopen('test.txt', 'r+');
    echo fread($f, 100);
    fclose($f);
?>stalker@stalkyard ~/test $ php test.php
123
stalker@stalkyard ~/test $ cd ..
stalker@stalkyard ~ $ php test/test.php 

Warning: fopen(test.txt): failed to open stream: No such file or directory in /home/stalker/test/test.php on line 3

Warning: fread(): supplied argument is not a valid stream resource in /home/stalker/test/test.php on line 4

Warning: fclose(): supplied argument is not a valid stream resource in /home/stalker/test/test.php on line 5

-= Concordia victoriam gignit =-

???

Aleks Revo написал(а):
На самом деле это не так - апач просто автоматически переходит в каталог, где исполняется скрипт

Да?
А мне почему-то казалось, что в случае Индейца указываются пути относительно DocumentRoot (ну и с учётом Alias'ов)...

:wq
--
Live free or die

Пути указываются относительно

Пути указываются относительно каталога в котором лежит файл запрошенного скрипта
include и request меняют каталог, но думаю это справедливо и для cli.
Сейчас сделаю эксперимент ))

-= Concordia victoriam gignit =-

.

Aleks Revo написал(а):
Пути указываются относительно каталога в котором лежит файл запрошенного скрипта
include и request меняют каталог, но думаю это справедливо и для cli.
Сейчас сделаю эксперимент ))

А... Понял.
Это если использовать спецсимволы (типа '.', коя, как известно, обозначает в данном случае текущий каталог).

:wq
--
Live free or die

без './' каталог в php тоже

без './' каталог в php тоже будет текущим

-= Concordia victoriam gignit =-

Всё-таки по include в cli

Всё-таки по include в cli режиме смены каталога не происходит, в апаче сейчас протестировать не могу, глючит форвардинг на серваке и не могу понять в чём фишка, а из-за этого не могу нормально работать со своим сервером

-= Concordia victoriam gignit =-

.

shiriy написал(а):
А что флеймить-то )))
Я только одно отличие помню - это то, что в cli режиме пых не работает с относительными ссылками на файлы, т.е. нельзя написать например $fd=fopen("somefile");, нужно писать $fd=fopen("/some/directiry/somefile");

На самом деле этот момент значит немного не то :) Уже объяснили.

Например - ситуация, когда для корректного выполнения php-скрипта необходимо задание правильного значения некоторой переменной (старая песня о главном: Oracle && TNS_ADMIN).

:wq
--
Live free or die

Вот и я не пойму, каким боком

удалено

-= Concordia victoriam gignit =-

Я бы рекомендовал раскрыть

Я бы рекомендовал раскрыть тему:
Что за скрипт (в смысле - формат; мой личный опыт говорит, что, формат скрипта www и запуска из cli мягко говоря "несколько" различаются, хотя есть подозрение, что степень различия существенно аврьируется в зависимости от функциональности)?
Как запускается?
Что он делает (должен делать) и корректно ли отрабатывает?

:wq
--
Live free or die

Скрипт - обычный

Скрипт - обычный php

<?php
тут внутри куча команд )
?>

Про формат не понял, обычный скрипт на пыхе.
Запускается вручную: захожу в директорию, где он лежит и запускаю:
php my_script.php
Скрипт обрабатывает логи апача на предмет нужной мне информации и создаёт файл с результатом, по ходу выдаёт в консоль инфу (что конкретно сейчас делает, чтоб мне не скучно было полторы минуты в монитор пялиться), завершается корректно. Но висит после этого именно наутилус а не пых, это в htop'е ясно видно, через десяток-другой секунд (точно не засекал) наутилус отвисает...

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".