URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 4631
[ Назад ]

Исходное сообщение
"Открытие файла."

Отправлено Denis_56 , 09-Сен-05 10:42 
Скрипт на Perl-е должен прочитать конфигурационный файлик "tmp.conf", когда писал скрипт все нормально работало и первые несколько раз работало, теперь процесс убивается из - за того, что не возможно открыть этот файлик, вроде как ничего не менял, да и скрипт работал же некоторое время нормально, теперь не пойму в чем дело. Может с подобным кто-то встречался.

open (tmp,"<tmp.conf") or die;


Содержание

Сообщения в этом обсуждении
"Открытие файла."
Отправлено eleo , 09-Сен-05 23:13 
>Скрипт на Perl-е должен прочитать конфигурационный файлик "tmp.conf", когда писал скрипт все
>нормально работало и первые несколько раз работало, теперь процесс убивается из
>- за того, что не возможно открыть этот файлик, вроде как
>ничего не менял, да и скрипт работал же некоторое время нормально,
>теперь не пойму в чем дело. Может с подобным кто-то встречался.
>
>
>open (tmp,"<tmp.conf") or die;

убери die - не будет убиваться


"Открытие файла."
Отправлено chip , 10-Сен-05 11:47 
>Скрипт на Perl-е должен прочитать конфигурационный файлик "tmp.conf", когда писал скрипт все
>нормально работало и первые несколько раз работало, теперь процесс убивается из
>- за того, что не возможно открыть этот файлик, вроде как
>ничего не менял, да и скрипт работал же некоторое время нормально,
>теперь не пойму в чем дело. Может с подобным кто-то встречался.
>
>
>open (tmp,"<tmp.conf") or die;

попробуй:

open(tmp, "<tmp.conf") or die("Can't open file: $!");

ошибку в студию!


"Открытие файла."
Отправлено mthawk , 12-Сен-05 10:46 
>Скрипт на Perl-е должен прочитать конфигурационный файлик "tmp.conf", когда писал скрипт все
>нормально работало и первые несколько раз работало, теперь процесс убивается из
>- за того, что не возможно открыть этот файлик, вроде как
>ничего не менял, да и скрипт работал же некоторое время нормально,
>теперь не пойму в чем дело. Может с подобным кто-то встречался.
>
>
>open (tmp,"<tmp.conf") or die;


Под каким пользователем работает скрипт?
Есть ли права на чтение к этому файлу?
не появилось ли в скрипте диеркив chdir и вообще как остоят дела с путями?
Конструкция open (tmp,"<tmp.conf") в линуксе является не совсем корректной, ибо если в винде рабочим каталогом является тот, где запускаемая программа лежит, то в линуксе - тот в котором ты находишься.

А в случае, если это автостарт - то рабочим каталогм является корневой.
И все пути к файлам рекомендуется указывать полные. от корневого каталога.


"Открытие файла."
Отправлено chip , 12-Сен-05 11:18 
>А в случае, если это автостарт - то рабочим каталогм является корневой.

cron можно считать автостартом ?! at ? И что вообще такое автостарт в Вашем понимании?


"Открытие файла."
Отправлено mthawk , 12-Сен-05 11:24 
>>А в случае, если это автостарт - то рабочим каталогм является корневой.
>
>cron можно считать автостартом ?! at ? И что вообще такое автостарт
>в Вашем понимании?

Автостарт это то что запускается вместе с системой.

Да, в случае с кроном нужно указывать асболютный путь.
есть 2 варианта.
либо объявить некую переменную, например $path и указать в ней путь к файлу
и окрывать его тогда open (F, "$path"."/filename");
или в скрипте дать инструкцию chdir($path) и тогда все будет работать без путей.


"Открытие файла."
Отправлено chip , 12-Сен-05 11:41 
>>>А в случае, если это автостарт - то рабочим каталогм является корневой.
>>
>>cron можно считать автостартом ?! at ? И что вообще такое автостарт
>>в Вашем понимании?
>
>Автостарт это то что запускается вместе с системой.

Что-то очень не похоже на правду.

>Да, в случае с кроном нужно указывать асболютный путь.
>есть 2 варианта.
>либо объявить некую переменную, например $path и указать в ней путь к
>файлу
>и окрывать его тогда open (F, "$path"."/filename");
>или в скрипте дать инструкцию chdir($path) и тогда все будет работать без
>путей.

В crontab'e (cd /path/to/dir && /path/to/script) - и получаем независимость скрипта от расположения файла.

ps: вообще это бессмысленный разговор. Я лишь хотел отметить, что такого понятия "как автостарт" в *nix в принципе не существует. В остальном я полностью согласен.