Разное поведение скрипта при запуске по абсолютному и относительным путям.

Автор ANALGIN, 07 января 2019, 22:55:36

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

ANALGIN

Добрый день!
Обстакановка следующая: Deb 9, на нём, в хомяке лежит папка с сервером игры, в подпапках - различные ресурсы. Например, в папке cstrike - ресурсы для мода counter strike, в папке valve - ресурсы для основной игры (да, сервер Half-life/Counter-ctrike). Так вот, в инструкции по установке сказано что запуск сервера должен выглядеть так: cd /home/user/hlds && ./hlds_run -game cstrike
И это на практике работает. А вот если попытаться запустить скрипт по прямому пути
/home/user/hlds/hlds_run -game cstrike
скрипт пожалуется, что не знает такого мода. Т.е. в этом случае он не видит подкаталог ./cstrike (или дефолтный подкаталог ./valve, если запустить без указания мода).
Почему так получается? И можно ли сделать запуск по абсолютному пути? Пробовал прописать каталог в $PATH: это дало быстрый запуск скриптов, но не избавило их от "слепоты". Есть подозрение, что при создании сервера, он лежал в корне. Попробую сейчас пробросить симлинк от папки cstrike в корень, но думаю, это тыканье пальцем в небо не поможет. Кто что посоветует?

ANALGIN

Хммм...
Пробросил симлинки всего содержимого папки сервера в корень - получилось запустить по абсолютному пути.
Т.е. сервер всё таки изначально заточен под лежание в корне. Смешно...

G_r_i_g_a


ANALGIN

Цитата: G_r_i_g_a от 08 января 2019, 08:06:34
А ты его от какого пользователя запускаешь?
"я есть (г)root", точнее из-под su.
Хотя от простого пользователя запускается абсолютно также.

endru

И что в этом удивительного?
Есть программы которые не знают в какой директории находятся его дополнительные файлы. Особенно это касается различных не официальных программ.
скорее всего ПО смотрит текущую директорию, и пытается найти все файлы там. а если не делать cd до дополнительных файлов - то он не сможет их найти.