Yar Tikhiy обобщил (http://people.freebsd.org/~yar/rcng/article.html) основную информацию по написанию rc.d скриптов под BSD системы.URL: http://people.freebsd.org/~yar/rcng/article.html
Новость: http://www.opennet.me/opennews/art.shtml?num=6207
Спасибо. Интересно.
полезная статья, спасибо.
Да ну - пихай всё в rc.local и не парь мозги :)
>Да ну - пихай всё в rc.local и не парь мозги :)
>
Да ну - когда тебе потребуется рестартануть 1 (один) сервис из той стопки в rc.local ты скажешь себе спасибо. бо будешь набирать что-нить типаkill `cat /var/run/service.pid` && /usr/local/bin/service -d -xyz@!# -f /fucking/long/path/to/config --a-lot-of-options=100
вместо
/usr/local/etc/rc.d/nice-startup-script.sh restart
А особенно тебе будет благодарен пришедший следом рулить системой после тебя. Традиции надо чтить :)
А что-нибудь подобное для линуха где можно прочитать?
а для Линуха все гораздо проще и логичнее. достаточно заглянуть как все сделано в /etc/rc.d/init.d/
берем что-нибудь простое типа
/etc/rc.d/init.d/iplog
, копируем в файл с новым именем (, например, /etc/rc.d/init.d/myporno), меняем пути к программе и мя программы внутри,
делаем
#chkconfig myporno on
и начинаем наконец работать, а не заниматься мазохизмом :)
Имхо, техника написания стартовых скриптов для БСД и для Линукса одинакова.
>Имхо, техника написания стартовых скриптов для БСД и для Линукса одинакова.
для какого дистра Линуха? Для какого дистра BSD ?? ;)
>Имхо, техника написания стартовых скриптов для БСД и для Линукса одинакова.
да. все тот же шелл. только в линуксе почти все разбито по кусочкам, а в бзд есть большой чудаковатый /etc/rc.d с примочками, методы изнасилования которого и описываются в этой статье
>да. все тот же шелл. только в линуксе почти все разбито по
>кусочкам, а в бзд есть большой чудаковатый /etc/rc.d с примочками, методы
>изнасилования которого и описываются в этой статьеВообще-то, /etc/rc.d - это каталог, в котором находится множество маленьких скриптов, отвечающих за отдельные сервисы. И в статье написано как наиболее правильно и эффективно писать эти скрипты.
надо только учитывать особенности той и другой системы инициализации
Вот эти особенности и хотелось бы узнать. Все эти bootlevel'ы и проч...
(но не тот)
если речь о шапке, тогда man chkconfig
и visual grep /etc/rc.d/* там почти все достаточно понятно.
а по-моему собственные скрипты в /u/l/etc/rc.d - дурной тон. Кроме одного, максимум двух aaaa.sh и zzzz.sh. Всё остальное должно иметь свои стандартные скрипты, написанные maintainer-ом порта. А ставить проги из сорцов - ещё более ужасный дурной тон.
>а по-моему собственные скрипты в /u/l/etc/rc.d - дурной тон. Кроме одного, максимум
>двух aaaa.sh и zzzz.sh. Всё остальное должно иметь свои стандартные скрипты,
>написанные maintainer-ом порта. А ставить проги из сорцов - ещё более
>ужасный дурной тон.Вы считаете, что лучше собственные скрипты хранить в /etc/rc.d/ ? Что-что, а вот это уже точно дурной тон.
Все установленые пользователем софтины, скрипты и т.д. надо ложить в определенные места, как в винде Program Files, так и в *nix (BSD в частности) /usr/local, что бы точно знать - в local лежит мое, а ниже дефолтное. Так что ложить в /usr/local/etc/rc.d отнюдь не дурной тон, а учитывая новые веяния в стартовых скриптах рестарт сетевых сервисов по /etc/netstart не обойдет внтиманием и написанные пользователем и положенные в /usr/local/etc/rc.dнасчет прог из сырцов - в принципе поддерживаю, но иногда хочется странного, а порта нету... Вот хочу я оракл 10-й прибить к фре,а в системе портов его нет. Что, ждать пока появиться? КОнечно, его потом оттуда трудно выкорчевать, но никто не запрещает либы и т.д. при компиляции ложить в "свои" пути, в что-то типа /usr/local/Oracle/lib и т.д.. Не отменял никто и записи что куда поставилось на момент инсталяции. Только обдумать все надо предварительно и ничто дурным тоном не будет, если сделано с умом.
>а по-моему собственные скрипты в /u/l/etc/rc.d - дурной тон. Кроме одного, максимум
>двух aaaa.sh и zzzz.sh. Всё остальное должно иметь свои стандартные скрипты,
>написанные maintainer-ом порта. А ставить проги из сорцов - ещё более
>ужасный дурной тон.Собирая софт из исходников можно попутно и порт нарисовать. А статья, по большому счету, именно мэйнтейнерам и предназначена.
Skif, конечно же и не в /etc/rc.d/. Это каталог базовой системы (кстати, mergemaster, если не ошибаюсь предложит весь левак удалить). Но и /u/l/etc/rc.d - каталог не для админа, а для старта программулин из портов.А оракл надо ставить на SuSE или RedHAT. Или уж postgresql/firebird на FreeBSD (коих в 98% случаев хватит).
>Skif, конечно же и не в /etc/rc.d/. Это каталог базовой системы (кстати,
>mergemaster, если не ошибаюсь предложит весь левак удалить). Но и /u/l/etc/rc.d
>- каталог не для админа, а для старта программулин из портов.
>Хорошо, а что является каталогом для админа? Вот сваял я своих скриптов ну с десятка полтора к примеру, которые при старте системы должны пускаться, при остановке - киляться. Куда мне их? в rc.local ? ИМХО, не считаю сей вариант самым оптимальным и удобным в повседневке, а особенно когда принимаешь какое-то добро от предыдущего админа. Все же /usr/local/etc/rc.d намного более удобен. Обозвал скрипт чем-то а-ля my_billing.sh и все, понятно чем он занимается без прочтения содержимого. дал ему в начале 000 - он уже и впереди планеты всей стартует, но после старта системных скриптов.
Да и касательно самих портов. Седня мой скрипт тока у меня что-то делает, а завтра он может быть и портирован...
Перекидывать с сервака на сервак тоже гораздо проще. легче же скопировать один файл, чем править, пусть и имеющийся в наличии.>
>А оракл надо ставить на SuSE или RedHAT. Или уж postgresql/firebird на
>FreeBSD (коих в 98% случаев хватит).Ну я ж не говорю что это умная идея. Как по мне, то вообще лучше на соляре. Но вот хочется мне странного и пускаю oracle.
(тот самый Майк)
В семействе систем System V используются уровни инициализации - грубо говоря, на некотором уровне запускаются некоторые скрипты, которые запускают соотв этому уровню программы. т.е. на 3м например - ссш-демон, sendmail и прочие. Процесс инициализации БСД регулируется обычно rc.conf и rc.conf.default. Вообще, всё есть в хэндбуке по этому поводу :).