LINUX.ORG.RU

Автоматическое вычисление порядковых номеров сервисов в Debian


0

0

Petter Reinholdtsen представил решение для автоматической нумерации и определения зависимостей для init.d сервисов в Debian GNU/Linux.

На данном этапе работы программа (пакет insserv) представляет собой скрипт check-initd-order устанавливаемый в директорию /usr/share/insserv/ и не меняющий стандартной системы инициализации. Он лишь проверяет нумерацию и анализирует зависимости между запускаемыми сервисами и при необходимости корректирует символические ссылки внутри директорий /etc/rc*.d/. Активация пакета производится командой "dpkg-reconfigure insserv".

http://www.opennet.ru/opennews/art.sh...

>>> Подробности

★★★★

Проверено: Shaman007 ()

пользуюсь дебианом уже с десяток лет и только однажды наблюдал в unstable проблемы от того что майнтенеры поставили что-то не в том порядке загрузки что надо.

собственно предлагаемые тут Depends тоже могут быть написаны ошибочно.

xargs ★★★
()
Ответ на: комментарий от xargs

> пользуюсь дебианом уже с десяток лет и только однажды наблюдал в unstable проблемы от того что майнтенеры поставили что-то не в том порядке загрузки что надо.

+1 За много лет использования stable ни разу не наблюдал проблем с init-скриптами. Только в случае установки программ рукми могут вылезти такие проблемы.

anonymous
()

Можно ли в init скриптах дебиана сделать запуск нескольких инстансов апача например?

anonymous
()
Ответ на: комментарий от anonymous

> Ну и чем тогда это лучше SysV??

Основное отличие SysV от BSD вовсе не в скриптах, а в init.

Во-первых, в BSD нет ранлевелов, а соответственно inittab и целого дерева каталогов с кучей особым образом (sic!) именованых симлинков на одни и те же скрипты. Тяжело объяснить BSD админу, зачем нужна вся эта избыточность. Равно тяжело объяснить линуксоиду, что вся функциональность ранлевелов элементарно реализуется без них.

Во-вторых, вместо "игры" с симлинками и кучей конфигов администратор редактирует один файл rc.conf, при этом он пишет туда только то, что отличается от /etc/defaults/rc.conf:

hostname="foo"
firewall_enable="YES"
ifconfig_bge0="DHCP"
...
bthidd_enable="YES"
...
hald_enable="YES"
fusefs_enable="YES"


В-третьих, проблема с порядком запуска скриптов (о чём собственно новость) просто не возникает. В rcNG очередность скриптов из /etc/rc.d и /usr/local/etc/rc.d вычисляется автоматически по ключевым словам в них самих, и не надо городить нумерованные симлинки:

# PROVIDE: bthidd
# REQUIRE: DAEMON hcsecd
# BEFORE: LOGIN
# KEYWORD: nojail

После установки какого-нибудь порта apache появится скрипт /usr/local/etc/rc.d/apache, и админу для автоматического запуска потребуется только добавить в /etc/rc.conf строчку apache_enable="YES", а при желании ещё и apache_flags.

PS. http://www.googlefight.com/index.php?lang=en_GB&word1=SysV+init&word2...

baka-kun ★★★★★
()
Ответ на: комментарий от baka-kun

> Во-вторых, вместо "игры" с симлинками и кучей конфигов администратор редактирует один файл rc.conf, при этом он пишет туда только то, что отличается от /etc/defaults/rc.conf:

Аллё, проснитесь! В нормальных дистрибутивах, например Debian, при установке пакета всё ствится автоматом! Администратору даже не надо править никаких конфигов, чтобы сервис стартовал при запуске, не надо прописывать никаких apache_enable="YES" и прочей лабуды.

> http://www.googlefight.com/index.php?lang=en_GB&word1=SysV+init&word2...

http://www.googlefight.com/index.php?lang=en_GB&word1=Linux+init&word...

Ха-ха! Утрись!

anonymous
()
Ответ на: комментарий от anonymous

>Администратору даже не надо править никаких конфигов, чтобы сервис стартовал при запуске

Кстати может кто в курсе как отключить такое поведение в дебе? Жутко бесит что всякая хрень запускается сразу после установки пакета.

kostian ★★★★☆
()
Ответ на: комментарий от anonymous

> В нормальных дистрибутивах, например Debian, при установке пакета всё ствится автоматом!

Ух, сколько восклицательных знаков! Фанатизм так и хлещет из всех щелей. :)

Сразу возникает пара вопросов:

1) Я правильно тебя понял, что достаточно установить ЛЮБОЙ пакет, в состав которого входит какой-либо демон, как он автоматически будет стартовать при каждом запуске системы? И никого не колышет содержание дистрибутивного httpd.conf, smb.conf и т.д? А если я поставлю поиграться exim, когда работает postfix, система будет запускать оба, поставленый первым, поставленый последним, или сама догадается, который мне сейчас нужен?

2) Порядок твоих действий, чтобы _не_запускать_ сервис при старте системы?

3) Тебе нужно одновременно сменить хостнейм, поменять адрес первой сетевухи, вторую заставить получать его по dhcp, натроить wlan, запустить wpa_supplicant, включить роутинг между интерфейсами, добавить несколько статических маршрутов и отменить запуск прокси. Опиши порядок действий, сколько файлов в системе будет отредактировано, сколько будет создано, сколько удалено, сколько символов ты напечатаешь, сколько прочитаешь. Для изменения всех настроек использовать максимум echo, cat, grep, sed (ты загараешь на островах, из всех средств связи есть только смартфон с ssh и без gprs).

baka-kun ★★★★★
()

очередное подтверждение что gentoo рулит, ибо до удобства, простоты и гибкости его baselayout все остальным линуксам еще телепать и телепать. Уж про /etc/conf.d/net я даже не упоминаю, дабы не травмировать психику дебианщиков и прочей лабуды. И вообще дебиановские велосипеды - самые медленные велосипеды в мире

prizident ★★★★★
()
Ответ на: комментарий от ZANSWER

На них хоть ездить можно в отличие от...

anonymous
()
Ответ на: комментарий от baka-kun

> Порядок твоих действий, чтобы _не_запускать_ сервис при старте системы?

# chkconfig servicename off

А вот каковы твои действия, чтобы встроить запуск нового сервиса в систему инициализации, или удалить всякие упоминания о сервисе из стартовых скриптов? В SysV на Fedora/RH это делается примерно так:

# chkconfig --add servicename

# chkconfig --del servicename

> Тебе нужно одновременно сменить хостнейм, поменять адрес первой сетевухи, вторую заставить получать его по dhcp, натроить wlan, запустить wpa_supplicant, включить роутинг между интерфейсами, добавить несколько статических маршрутов и отменить запуск прокси

# cd /etc/sysconfig

Меняем hostname:

# vi /etc/sysconfig/network

Меняем настройки интерфейсов:

# vi /etc/sysconfig/network-scripts/ifcfg-eth0

# vi /etc/sysconfig/network-scripts/ifcfg-eth1

# vi /etc/sysconfig/network-scripts/ifcfg-wlan0

Запустить wpa_supplicant:

# chkconfig wpa_supplicant on

Отключить сквид:

# chkconfig squid off

Добавить статических маршрутов:

# vi /etc/sysconfig/static-routes

И что сложного?

no-dashi ★★★★★
()
Ответ на: комментарий от baka-kun

> Порядок твоих действий, чтобы _не_запускать_ сервис при старте системы?

Запускаем тулзу, и, используя удобный GUI, отмечаем сервисы, которые нам нужны.

> Тебе нужно одновременно сменить хостнейм, поменять адрес первой сетевухи, вторую заставить получать его по dhcp, натроить wlan, запустить wpa_supplicant, включить роутинг между интерфейсами, добавить несколько статических маршрутов и отменить запуск прокси.

/etc/network/myconfig.sh /etc/init.d/runmynetworkconfig

> ты загараешь на островах, из всех средств связи есть только смартфон с ssh и без gprs

это только бсдуны могут, загорая на островах, вспоминать про grep.

anonymous
()

update-rc.d в дебиане или chkconfig в шапке поможет вам управлять сервисами.

roller ★★★
()
Ответ на: комментарий от no-dashi

> А вот каковы твои действия, чтобы встроить запуск нового сервиса в систему
> инициализации,

cd /var/service; ln -s /etc/sv/servicename

> или удалить всякие упоминания о сервисе из стартовых скриптов?

rm -f /var/service/servicename

> # cd /etc/sysconfig
>
> Меняем hostname:
>
> # vi /etc/sysconfig/network
>
> Меняем настройки интерфейсов:
>
> # vi /etc/sysconfig/network-scripts/ifcfg-eth0
>
> # vi /etc/sysconfig/network-scripts/ifcfg-eth1
>
> # vi /etc/sysconfig/network-scripts/ifcfg-wlan0
>
> Запустить wpa_supplicant:
>
> # chkconfig wpa_supplicant on

> И что сложного?

Глупое расположение конфигов (/etc/sysconfig -- что за маразм?), необходимость в каких-то
левых утилитах.

Dselect ★★★
()
Ответ на: комментарий от kostian

> Жутко бесит что всякая хрень запускается сразу после установки пакета.

Если по какой-то причине не охота менять sysV init на что-то пристойное,
можно сделать так:

# cat > /usr/sbin/policy-rc.d
#!/bin/sh -e
service="$1"
if [ -z "$service" ]; then
exit 103 # syntax error
fi
action="$2"
if [ -z "$action" ]; then
exit 103 # syntax error
fi
if [ "$action" = "stop" ]; then
exit 0 # allow
fi

case $service in
ssh)
exit 0 # allow
;;
foobar)
exit 0 # allow
;;
*)
exit 101 # forbid
;;
esac

# chmod 755 /usr/sbin/policy-rc.d

Теперь будут запускаться только /etc/init.d/ssh и /etc/init.d/foobar.
И Вас будет жутко бесить, что всякая хрень НЕ запускается сразу после
установки :)

Dselect ★★★
()
Ответ на: комментарий от baka-kun

> Во-вторых, вместо "игры" с симлинками и кучей конфигов администратор
> редактирует один файл rc.conf

Ага, вместо отдельного конфига на каждый сервис есть одно большое болото.
И если при его редактировании сделана хоть одна ошибка -- не стартует НИ
ОДИН сервис. В топку.

> В rcNG очередность скриптов из /etc/rc.d и /usr/local/etc/rc.d вычисляется
> автоматически по ключевым словам в них самих, и не надо городить нумерованные
> симлинки:

> # PROVIDE: bthidd
> # REQUIRE: DAEMON hcsecd

В стартовом скрипте bthidd (/etc/sv/bthidd/run) пишется

sv start hcsecd

> # BEFORE: LOGIN

В стартовом скрипте login пишется:

sv start bthidd

Dselect ★★★
()
Ответ на: комментарий от anonymous

> Администратору даже не надо править никаких конфигов, чтобы сервис
> стартовал при запуске

Это не фича, это баг.

Dselect ★★★
()
Ответ на: комментарий от baka-kun

>Сразу возникает пара вопросов:

>1) Я правильно тебя понял, что достаточно установить ЛЮБОЙ пакет, в состав которого входит какой-либо демон, как он автоматически будет стартовать при каждом запуске системы? И никого не колышет содержание дистрибутивного httpd.conf, smb.conf и т.д? А если я поставлю поиграться exim, когда работает postfix, система будет запускать оба, поставленый первым, поставленый последним, или сама догадается, который мне сейчас нужен?

нет, postfix будет удален :)

содержания "httpd.conf, smb.conf" содержат установки минимум которые позваляют сервесу запустится.

Ну и на последок зачем в систему ставить чтото что не будет запускатся :)

>2) Порядок твоих действий, чтобы _не_запускать_ сервис при старте системы?

dpkg --remove xxxxxxx

update-rc.d [-n] [-f] <basename> remove

>3) Тебе нужно одновременно сменить хостнейм, поменять адрес первой сетевухи, вторую заставить получать его по dhcp, натроить wlan, запустить wpa_supplicant, включить роутинг между интерфейсами, добавить несколько статических маршрутов и отменить запуск прокси. Опиши порядок действий, сколько файлов в системе будет отредактировано, сколько будет создано, сколько удалено, сколько символов ты напечатаешь, сколько прочитаешь. Для изменения всех настроек использовать максимум echo, cat, grep, sed (ты загараешь на островах, из всех средств связи есть только смартфон с ssh и без gprs).

>baka-kun *** (*) (21.01.2008 4:21:57)

ну а на остравах есть Wi-Fi и не так уж сложно добратся до компа чем мучить смартфон

andrejdo
()
Ответ на: комментарий от atrus

> По этому Бог - это кот Шредингера. :)

Нет :) Кот Шредингера - Бог!

А кошки - его уполномоченные представители

DarkFlame ★★
()

В Генто уже давно есть система init-ng которая не только определяет динамически все зависимости инит скриптов во время их запуска автоматически запуская нужные им сервиссы, но и поддерживает параллельный запуск/остановку сервиссов что значительно сокращает время загрузки/остановки системы!!!

hse
()
Ответ на: комментарий от no-dashi

> # chkconfig servicename off

Я в курсе, спасибо. Просто решил не упоминать лишний раз, что вокруг всего многообразия конфигов и скриптов навернуты ещё и всякие несовместимые утилитки. И вся эта куча необходима только при старте и остановке. Интереснее, если бы человек расказал (точнее сам осмыслил), что за ними скрыто -- мы ведь саму систему инита сравниваем.

> А вот каковы твои действия, чтобы встроить запуск нового сервиса в систему инициализации

А вот этого мне в большинстве случаев не нужно, у меня нет проблем с зависимостями. Достаточно разрешить его запускать или нет.

> # cd /etc/sysconfig (+и редактирование кучи файлов)

# cat >/etc/rc.conf
hostname="bar"
ifconfig_xl0="inet 10.10.10.10/24"
ifconfig_xl1="dhcp"
ifconfig_iwi0="...."
gateway_enable="yes"
squid_enable="no"
static_routes="specific1 route2 baz"
route_baz="-net 10/8 10.10.10.1"
...


baka-kun ★★★★★
()
Ответ на: комментарий от anonymous

> Запускаем тулзу, и, используя удобный GUI...

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

> загорая на островах, вспоминать про grep.

У тебя заслуженный отпуск, а два оставшихся на подхвате человека вчера неудачно проезжали перекресток в тот момент, когда обдолбанный псих уматывал от полиции. Оба живы, к счастью, но бизнес должен продолжаться. Реальная история.

baka-kun ★★★★★
()
Ответ на: комментарий от Dselect

> Что BSD, что sysV шибко многословны.

У меня есть одна машинка, где роль инита выполняет svscan от djb. Не сказал бы, что это сильно удобно, но зато очень компактно.

baka-kun ★★★★★
()
Ответ на: комментарий от Dselect

> Ага, вместо отдельного конфига на каждый сервис есть одно большое болото. И если при его редактировании сделана хоть одна ошибка -- не стартует НИ ОДИН сервис. В топку.

Ошибаешься. rc.conf -- это sh, он просто инклудится в скрипты запуска. Поэтому максимум не запуститься один сервис и зависимые от него, да на консоле будет "foo: not found".

> В стартовом скрипте bthidd (/etc/sv/bthidd/run) пишется sv start hcsecd

И так везде, где он требуется? Оччень хорошо.

> В стартовом скрипте login пишется: sv start bthidd

Завтра у меня поставится сервис, который надо запускать перед login, но после bthidd. Твои действия? А если он тянет зависимости, которые тоже должны запускаться в определенное время?

baka-kun ★★★★★
()
Ответ на: комментарий от andrejdo

> нет, postfix будет удален :)

Как это эротично ;). А мне вот хочется, чтобы продолжал работать постфикс, а экзим я вообще на другой порт планировал посадить, эксперименты ставить. Как?

> dpkg --remove xxxxxxx

Вот почему-то был уверен, что кто-нибудь обязятельно предложит переставлять пакет каждый раз, когда мне нужно просто отключить/включить его автозапуск. ;)

> ну а на остравах есть Wi-Fi и не так уж сложно добратся до компа чем мучить смартфон

Не везде и не всегда. И я ещё не выжил из ума, чтобы брать в отпуск ноутбук со спусниковым интернетом. ;)

baka-kun ★★★★★
()
Ответ на: комментарий от baka-kun

> А мне вот хочется, чтобы продолжал работать постфикс, а экзим я вообще на другой порт планировал посадить, эксперименты ставить. Как?

Не стоит придумывать искусственные задачи. Только полоумному придёт в голову устанавливать несколько MTA на один комп, и запускать их, чтобы каждый слушал на разных портах. Но даже если ты такой извращенец, следует почитать man и тгда ты поймёшь, что в Debian это возможно, просто следует использовать dpkg с опцией --unpack.

> Вот почему-то был уверен, что кто-нибудь обязятельно предложит переставлять пакет каждый раз, когда мне нужно просто отключить/включить его автозапуск.

Бред, переставлять ничего не надо, всё легко можно сделать либо руками в файловой системе, либо при помощи утилиты update-rc.d, что в пакете sysv-rc. В общем, совет тебе один: осиль маны, бо помрёшь необразованным троллем.

> И я ещё не выжил из ума, чтобы брать в отпуск ноутбук со спусниковым интернетом. ;)

Что за бред? Ты едешь отдыхать на необитаемый остров, где нет доступа в Интернет? И на время твоего отпуска тебя некем заменить? Бред сивой кобылы. Отпуск на то и отпуск, чтобы не думать о работе. Или ты настолько ущербен, что на протяжении всего отпуска мониторишь серверы?? Просто смешно.

anonymous
()
Ответ на: комментарий от baka-kun

> У тебя заслуженный отпуск, а два оставшихся на подхвате человека вчера неудачно проезжали перекресток в тот момент, когда обдолбанный псих уматывал от полиции.

Мой тебе совет: когда берёшь отпуск, не оставляй никому никаких контактов, ибо отпуск рискует превратиться в игру с элементами BDSM. В обратном случае, лучше не брать отпуск вовсе, бо потеряешь нервных клеток больше, чем восстановишь.

anonymous
()
Ответ на: комментарий от anonymous

> Не стоит придумывать искусственные задачи.

Задача вполне естественная. Нечастая и не для всех, но бывает удобно поставить на одной машине два радиуса или разные http серверы. Для сравнения, анализа...

> Бред, переставлять ничего не надо...

Это не ко мне. Я прекрасно представляю, что и как можно сделать под разными линуксами, бсд, соляркой т.д. и т.п. Напоминаю тему -- обсуждение инициализаци. Прозвучал тезис, что BSD ничем не уступает SysV, а может в чём-то и превосходит.

baka-kun ★★★★★
()
Ответ на: комментарий от anonymous

> Ты едешь отдыхать на необитаемый остров, где нет доступа в Интернет?

Ну, не настолько необитаемый, хотя и такие есть. В Карибском бассейне есть множество приятных маленьких островков, куда можно добраться только на яхте, и где нет хотспотов, интернет кафе и шума цивилизации. Вся связь с внешним миром -- радиостанция, спутник и, что поначалу странно, много где работает телефон.

> Мой тебе совет: когда берёшь отпуск, не оставляй никому никаких контактов

Подчиненные очень ревностно относятся к отпуску начальства -- предпочитают не беспокоить не только по пустякам, но даже по серьезным поводам ;)

baka-kun ★★★★★
()
Ответ на: комментарий от baka-kun

> Во-первых, в BSD нет ранлевелов, а соответственно inittab и целого дерева каталогов с кучей особым образом (sic!) именованых симлинков на одни и те же скрипты. Тяжело объяснить BSD админу, зачем нужна вся эта избыточность. Равно тяжело объяснить линуксоиду, что вся функциональность ранлевелов элементарно реализуется без них.

В генте кстати тоже фактически отказались от традиционных (нумерованных) ранлевелов (они в inittab присутствуют, но реально не используются), заменив её на систему именованных ранлевелов.

slav ★★
()

Блин, точно, открыли Америку, тоже мне. chkconfig ниасилили (вручную ставил в итоге). с мандривы пусть пример берут, ппц.

anonymous
()
Ответ на: комментарий от anonymous

Всё равно лучше RunIt/DaemonTools пока ещё не придумали ничего :) А зависимости легче проверять в Shell-скрипте по выводу ps, чем громоздить всю эту лабудень, которая всё равно работает до тех пор, пока всё заклинило в одном положении. А насчёт BSD vs. SysV - объективно (по сути) разницы-то никакой! Там chkconfig, здесь прописывание строк в файл (а если какое-нибудь стороннее приложение ошибётся и угробит файлик? Неприятно будет, правда?). Зависимости в заголовке скрипта - офигеть, как красиво, и ведь это реализуется сейчас и во многих SysV - дистрибутивах. Посмотрите на SuSE - там именно так и сделано, но что это качественно меняет. Ведь службы зависят не от каких-то других служб с определёнными названиями (кто эти названия стандартизовать успел?), а от СЕРВИСОВ, которые они предоставляют! IMHO проблема в отсутствии стандартизации метода загрузки, а не в том, что какой-то из них лучше/оптимальнее/логичнее, а какой-то хуже/тормознее/заковыристее. Если когда-то разработчикам ПО создавало головную боль наличие SysV и BSD, то сейчас уже и SysV, и BSD форкнулись ещё на десятки ограниченно совместимых между собой методов загрузки. В результате разработчики OpenSource предлагают писать загрузочные скрипты самотсоятельно, а для девелоперов коммерческого софта это является ещё одной причиной, по которой они вынуждены создавать пакеты лишь для очень ограниченного числа дистрибутивов Linux. Если бы все, кто работает сейчас над изобретением новых велосипедов и доработкой старых собрались на конференцию и выработали единый обязательный для ВСЕХ дистрибоваятелей стандарт загрузки (возможно, с какими-то вариациями), это бы решило массу проблем. Создание же "костылей" типа скрипта, упомянутого в данной новости,ситуацию только обостряет.

DRVTiny ★★★★★
()
Ответ на: комментарий от baka-kun

>> нет, postfix будет удален :) > Как это эротично ;). А мне вот хочется, чтобы продолжал работать постфикс, а экзим я вообще на другой порт планировал посадить, эксперименты ставить. Как?

Так это потому что Дебиан для работы в продакшене, а для игр на локалхосте с постфигсами -- да, можно и БЗДю поставить. :^)

adv
()
Ответ на: комментарий от timth

>веру в свою анонимную задницу запихай. принимаем это как рабочую теорию ибл для объяснения мира божка нафиг ненужен, а ни один из правоверных его не предъявил.

Узость мышления до добра еще никогда не доводила. Мы пока не знаем даже, как устроен мир и толком с континиумом разобраться не можем, а ты говоришь...

jackill ★★★★★
()
Ответ на: комментарий от baka-kun

>Во-вторых, вместо "игры" с симлинками и кучей конфигов администратор редактирует один файл rc.conf, при этом он пишет туда только то, что отличается от /etc/defaults/rc.conf:

А теперь вопрос.

Вот у меня fedora. Ставлю я себе, к примеру, дрова под nvidia + апач.

Каким волшебным образом эти штуковины должны запихнуть себя в запуск (nvidia проверяет наличие себя к xorg.conf и создает устройства)?

И что, если мне в графике не нужен апач, а без графики не нужна nvidia?

Автоматически как это решить - не все же пользователи админы.

jackill ★★★★★
()
Ответ на: комментарий от baka-kun

Не знаю как там в Debian (видел его эпизодически, да в виде огрызков в angstrom), но в Fedora так:

>Я правильно тебя понял, что достаточно установить ЛЮБОЙ пакет, в состав которого входит какой-либо демон, как он автоматически будет стартовать при каждом запуске системы?

Нет. "Опасные" вещи будут записаны как KXXdemon и будут светиться в каталоге, иметь нужный порядок, но не запустятся. В качестве примера можно назвать ftp-серверы.

Кстати, порядок запуска прописан изначально.

Удаленных и созданных файлов не будет.

>хостнейм

Если не путаю, то /etc/hostname

>поменять адрес первой сетевухи

Сетевухи лежат тут: /etc/sysconfig/network/network-scripts

в виде файлов ifcfg-ethX.

В одной из них меняешь адрес, во второй пишешь вместо static слово dhcp.

wlan-сетевухи лежат там же. Что там с wpa_supp - я хз.

>включить роутинг между интерфейсами, добавить несколько статических маршрутов

Роутинг в случае Fedora прописывается в /etc/rc.d/rc.local (раньше был на эту тему отдельный файлик, но начиная с fc5 его убрали, потому как все все равно пользовались rc.local'ом).

>отменить запуск прокси

Ну ты понял, да? rm... раз уж на острове и печатать лень.

...

Вообще ты редкий извращенец. Все давно с коммуникаторами ходят, либо КПК берут.

В любом случае, твой остров - сферический конь в вакууме. А вот толпа пользователей, которые не желают (и им не нужно) копаться в скриптах более чем реальна.

jackill ★★★★★
()
Ответ на: комментарий от Dselect

>Глупое расположение конфигов (/etc/sysconfig -- что за маразм?)

Это не маразм. Это чтобы система в помойку не превращалась.

Кроме того с такими настройками можно держать несколько профилей для того же сетевого оборудования. Причем настраивать можно как руками, так и специальной утилитой.

Утилиты для удобства. Я, например, делаю вообще те же действия, что и утилита, руками (т.е. она меняет перед названием и номером запуска буковку K на S или наоборот).

jackill ★★★★★
()
Ответ на: комментарий от DRVTiny

>Там chkconfig, здесь прописывание строк в файл (а если какое-нибудь стороннее приложение ошибётся и угробит файлик? Неприятно будет, правда?)

Тут оно у тебя угробит один файлик и все остальное будет живо (да и не файлик, а симлинк на файлик). А там, если не дай бог угробит файлик, произойдет тотальный капец всей твоей выверенной системе.

jackill ★★★★★
()
Ответ на: комментарий от jackill

Интересно, где это "там"? В SysV, коим пользуюсь, хоть все файлики загробятся - можно и в /etc/rc.d/rc.sysinit прописать все нужные команды запуска сервисов.

Кстати, господа, а никого не смущает, что скрипты загрузки пишутся на супергипертормозном языке оболочки, и как там не изголяйся с параллельным запуском служб, быстрее оно от этого работать не будет? Интерпретатор, он ведь и в Африе интерпретатор, а BASH ещё и на 1 встроенную команду 50 внешних программ вызывает (по жизни так). А если писать скрипты в убогом стиле Crux/Slackware/им подобных, то, простите, а нафига тогда вообще нужно было изголяться с выносом запуска сервисов в отдельные скрипты, можно ведь с таким же успехом одним rc.conf-подобным конфигом обойтись: дополнительно прописать в него пути к бинарникам с параметрами, да и дело с концом. Всё равно скрипты в том же Crux'е кроме собственно exec'а ничего полезного не делают, ни черта не проверяют, им как-то даже по барабану, запустился сервис на самом-то деле или нет, а уж позаботиться хотя бы о минимальной иниципализации окружения, проверить соблюдение каких-то обязательных условий, корректности конфигурации - да ну Боже упаси, что вы! После этого шлакоиды и бзд-шники доказывают, что у них системы грузятся быстрее. Ну ясен пень, что быстрее, а как же ещё, если их скрипты загрузки состоят их 5-ти строчек какого-то мусора?

DRVTiny ★★★★★
()
Ответ на: комментарий от baka-kun

> > В стартовом скрипте bthidd (/etc/sv/bthidd/run) пишется sv start hcsecd
> И так везде, где он требуется?

Да.

> Оччень хорошо.

Всяко лучше, чем всякие там # REQUIRES: bar # PROVIDES: foo

> Завтра у меня поставится сервис, который надо запускать перед login,
> но после bthidd.

В /etc/sv/login/run:

[ -h /var/service/foo ] && sv start foo

В /etc/sv/foo/run:

sv start bthidd

> А если он тянет зависимости,

Это не важно. Главное, чтоб в его run скрипте они были правильно описаны.
(sv start ...)

Dselect ★★★
()
Ответ на: комментарий от baka-kun

> У меня есть одна машинка, где роль инита выполняет svscan от djb.
> Не сказал бы, что это сильно удобно, но зато очень компактно.

Самое удобное в нем -- автоматический перезапуск "упавшего" демона.

Dselect ★★★
()
Ответ на: комментарий от baka-kun

таки в топку

> rc.conf -- это sh, он просто инклудится в скрипты запуска.

В _каждый_ из них.

> Поэтому максимум

... не запустится _ни один_, и в логах будет "sh: syntax error". Пример из жизни:

enable_moused="yes

(кавычку забыл закрыть).

Dselect ★★★
()
Ответ на: комментарий от jackill

> > Глупое расположение конфигов (/etc/sysconfig -- что за маразм?)

> Это не маразм. Это чтобы система в помойку не превращалась.

Это маразм. И именно благодаря нему система превращается в помойку.
Еще б придумали /etc/etc/sysconfig, или /etc/sysconfig/etc, или
/etc/etc/sysconfig/etc, умники...

Dselect ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.