Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
Environment у сервисов
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index Russian
View previous topic :: View next topic  
Author Message
user11
Tux's lil' helper
Tux's lil' helper


Joined: 25 Nov 2005
Posts: 149

PostPosted: Mon Apr 02, 2007 1:29 am    Post subject: Environment у сервисов Reply with quote

Некоторые сервисы (то есть то, что запускается из /etc/init.d) могут зависеть от переменных окружения. Например - самое очевидное - от пути.
Как я понимаю, локаль тоже задаётся именно этими самыми переменными.
Причем чем сложнее сервис, тем больше того, от чего он зависит.

Сервисы, запускающиеся при старте системы, получают одно окружение (весьма минималистичное), а те, что запускаются вручную (командой /etc/init.d/xxx start) - другое.

Из-за этого постоянно возникают неприятности при отладке этих сервисов. Например, я проверил, что всё работает, - а при перезагрузке все снова встало. То ли пути не те, то ли локаль, то ли ещё что...

В связи с этим хочется:

1. уметь запускать заданный сервис в точности в том окружении, в котором он будет реально работать при старте системы /* и больше никогда не писать глупость # /etc/init.d/xxx (start|restart) */. Как этому научиться?

2. уметь из сервиса узнавать некоторые важные вещи, которые кажутся очевидными для простых приложений, например `locale charmap`. Например, некоторым сервисам позарез надо знать, в какой кодировке наша система принимает имена файлов. Как мой сервис может это узнать? И можно ли это обеспечить для уже имеющихся сервисов? (например, mldonkey)

Вообще шиком было бы получить в сервисе весь рабочий environment. Например, я не хочу завязывать сервис на то, где стоит необходимое приложение - в /usr/bin или в /usr/local/bin - а предпочел бы поискать в $PATH. Есть ли классические решения? Очень подозреваю, что переменные для всех сервисов настраиваются где-то вблизи /etc/env.d/.

// PS. вначале хотел приделать к этой теме опрос про локали, но как-то это слишком круто и не в тему получилось. Удалил.
Back to top
View user's profile Send private message
viy
Veteran
Veteran


Joined: 03 Jul 2004
Posts: 1580
Location: Riga, Latvia

PostPosted: Mon Apr 02, 2007 6:28 am    Post subject: Reply with quote

Возьми apache. Скрипт из init.d оперирует несколькими переменными, которые прописаны в файле с идентичным именем из conf.d.
Причем чтение этого файла обеспечивает "движок" sysvinit.

Так что я думаю стоит попробовать завести конфигурационный файл и засунуть туда все, что тебе необходимо.
А вообще ответ стоит искать в манах, не ты первый на эти грабли наступаешь.
Back to top
View user's profile Send private message
user11
Tux's lil' helper
Tux's lil' helper


Joined: 25 Nov 2005
Posts: 149

PostPosted: Mon Apr 02, 2007 11:23 am    Post subject: Reply with quote

К сожалению, в man init я не нашел, как запустить из комстроки сервис с таким же окружением, которое у него будет при старте системы. Ты уж можешь называть меня ламером позорным, это уж как тебе угодно, спорить не буду.
Также неясно, в каком мане искать, чем заменить ручной copypaste нужных мне строк из /etc/env.d в /etc/conf.d.
Что я не первый - знаю, и видел людей, которые кучу времени потратили на том, что при рестарте все оказывалось не так, как ожидалось. Разумеется, в конечном счёте все нужное прописывали в init.d или conf.d.
Back to top
View user's profile Send private message
user11
Tux's lil' helper
Tux's lil' helper


Joined: 25 Nov 2005
Posts: 149

PostPosted: Sat Apr 07, 2007 1:38 am    Post subject: Reply with quote

О Учитель!
Я долго читал указанный Тобой man init и нашёл в нём, как запустить заданный процесс init'ом.
Но я не пониимаю, неужели для этого обязательно надо каждый раз править inittab?
Неужели нет метода попроще, ведь это же обыденная операция?
Нельзя ли сделать что-то типа "exec -c /etc/init.d/service start"?
Почему для этого нет стандартной команды?

PS. Как прочитать /etc/init.d/apache, не устанавливая апача, я пока не постиг.
Back to top
View user's profile Send private message
viy
Veteran
Veteran


Joined: 03 Jul 2004
Posts: 1580
Location: Riga, Latvia

PostPosted: Sat Apr 07, 2007 7:11 am    Post subject: Reply with quote

Возможно я не так выразился. Маны надо читать именно на тему запуска сервисов методом gentoo.

У меня нету gentoo под рукой на данный момент, больше не расскажу. Разве что handbook почитать...
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Russian All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum