Войти

Показать полную графическую версию : Автозагрузка в FreeBSD


JaRule
20-06-2011, 13:31
Всем добрый день! Мне нужно чтоб при запуске сервера FreeBSD у меня автоматом запускались два приложения: squid и rinetd -c /usr/local/etc/rinetd.conf. Я нашел в инете два способа: написать скрипт и поместить его в папку /etc/rc.d/ - так и сделал, скрипт работает а при загрузке компа не срабатывает. Вариант второй: в Crontab написать @reboot имя команды, - сделал, все равно не работает... Как с этим можно побороться? И какой вариант лучше?

Telepuzik
20-06-2011, 13:40
squid »
А что мешает прописать в rc.conf строчку squid_enable="YES" для автоматического старта squid-а?

JaRule
20-06-2011, 13:43
а я про это не знал)) щас пропишу... а со второй командой как поступить?

Telepuzik
20-06-2011, 13:57
щас пропишу... а со второй командой как поступить? »
Если конфиг его лежит там где его по-умолчанию ищет rinetd то так же прописывается rinetd_enable="YES".

JaRule
20-06-2011, 14:02
Я это тоже щас сделал, проверить работает или нет смогу тока после перезагрузки сервака, но щас я не могу его перезагрузить, люди работают. Если вдруг это не заработает после загрузки, я напишу))

vadblm
20-06-2011, 14:21
Вообще, если устанавливаете любой демон из портов/пакаджей, к нему майнтайнер 100% уже нарисовал стартскрипт. На примере rinetd смотрим:

$ pkg_info -xL rinetd | grep rc.d
/usr/local/etc/rc.d/rinetd

Ага, есть такой стартскрипт.
Теперь смотрим что в нём, а там в комментариях:

#
# Add the following lines to /etc/rc.conf to enable rinetd:
# rinetd_enable (bool): Set to "NO" by default.
# Set it to "YES" to enable rinetd
# rinetd_flags (str): Set to "" by default.
# Extra flags passed to start command
#

Майнтайнеры стараются придерживаться конвенции, что для включения автозапуска следует добавлять в rc.conf строку вида <демон>_enable="YES", поэтому Telepuzik не составило труда сделать совершенно правильную догадку. Но для некоторых софтин это неочевидно, или необходимы какие-либо дополнительные гайки.

Запомните это на будущее, чтобы, когда вам приспичит поставить ещё одну софтинку, не пришлось бегать по форумам с вопросом, как же её запускать.

JaRule
20-06-2011, 16:19
Большое спасибо!

gf100
20-06-2011, 16:31
А для чего-то нестандартного:
написать скрипт и поместить его в папку /etc/rc.d/ »
существует папка /usr/local/etc/rc.d/
только надо не забывать ставить атрибут "исполняемый" на скрипт.

vadblm
20-06-2011, 16:34
только надо не забывать ставить атрибут "исполняемый" на скрипт. »
И, если стартскрипт написан не в соответствии с фреймворком rcNG, то должен иметь "расширение" .sh
Также, если нужно просто что-то запускать и писать скрипт по уму лень, то сгодится добавить строку запуска в /etc/rc.local

Подробности - man rc

JaRule
21-06-2011, 11:06
то должен иметь "расширение" .sh »
Я скрипты пишу на перле и ставлю им расширение .pl, но разумеется, когда я их запускаю они работают.

vadblm
21-06-2011, 11:25
Речь была строго о rc-скриптах. Всё же, рекомендую почитать man rc, чтобы получить точное представление о том, что происходит при подъёме.




© OSzone.net 2001-2012