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 ()

Лол, а без симлинков с номерами этот человек себе жизни не представляет? Есть ведь initng, есть upstart, джентовские скрипты, наконец.

ero-sennin ★★
()

init без зависимостей есть зло, и надо его менять.

Пример скриптов с зависимостями - baselayout

INFOMAN ★★★★★
()

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

anonymous
()

Гы-гы-гы, 'depend () { ... }' (как, например, в Генте) ниасилили, новые костыли виндузоообразные лепят (вроде выгружалки резидентных программ МС-ДОС).

Патрег их покарает!

a110c
()

>решение для автоматической нумерации и определения зависимостей для init.d

Что только не делают, что-бы BSD like скрипты не юзать...

marsijanin ★★
()

Ну и нахрена оно нужно? Проблемы с зависимостями init-скриптов возникают только при установке программ руками.

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

То есть ты предлагаешь единую нумерацию симлинков для всех возможных пакетов? Маразм.

P.S. Слава Богу, что они стараются исправить коренные недостатки в дистрибутиве, а не называют их особенностями. Зачет.

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

> То есть ты предлагаешь единую нумерацию симлинков для всех возможных пакетов? Маразм.

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

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

> P.S. Слава Богу, что они стараются исправить коренные недостатки в дистрибутиве, а не называют их особенностями. Зачет.

Бога нет.

P.S. Они не исправляют недостатки, а придумывают велосипед. Стандартная нумерация init-скриптов - это лучшее решение.

anonymous
()

Ну вообще-то такая система хороша тем, что она обратно совместима. Это некий стандарт (при том нее только де факто).

Потом, речь-то идет об установке новых пакетов. Так что ТруЪ.

// ps. Ярый дебианщик и порядочный консерватор...

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

Ну не знаю, я пальцы чуть не сломал, пытаяссь понять как запускается lirc в кубунте, когда она у меня стояла. А в том-же арче дописал lircd в DAEMONS в /etc/rc.conf и всё.

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

> Что только не делают, что-бы BSD like скрипты не юзать...

БСД давным давно использует rcorder который топологчески сортирует зависимости

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

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

Явно больше 100. Чего уже достаточно.

Плюс, при выборе числа для определенного сервиса приходится вместо зависимостей смотреть на то, какие числа имеют сервисы, от которых зависит данный. Что вызывает огромные неудобства для разработчика.

Плюс, что делать, когда меняются зависимости(соответственно и числа) у зависимостей от данного пакета? Бяка происходит. То есть разработчику данного пакета приходится следить за всем поддеревом зависимостей. Удобно, не правда ли?

Плюс, кто сказал, что централизация разработки -- это хорошо?

Плюс, depend() { after net } -- чем не стандартизация?

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

>А в том-же арче дописал lircd в DAEMONS в /etc/rc.conf и всё.

Фишка в том, чтобы написать DAEMONS в правильном порядке. dbus и hal например к этому чувствительны. К счастью это единичные случаи.

Midael ★★★★★
()

неинтересная новость.
вот если бы было "Автоматическое вычисление паспортных данных анонимуса на ЛОРе"

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

>>>Бога нет.

>>Бездоказательное утверждение.

>бездаказательное утверждение.


Бог и есть и его нет - одновременно :)
Поэтому оба правы :)

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

> Что только не делают, что-бы BSD like скрипты не юзать...

+1 :)

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

> Фишка в том, чтобы написать DAEMONS в правильном порядке. dbus и hal например к этому чувствительны.

dbus можно не прописывать, hal его автоматом запустит.

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

>>Бога нет.

>Бездоказательное утверждение.

полноценная теория, и заметь, вовсю себя подтверждающая, и прекрасно фальсифицируемая -- достаточно предъявить сучку-божку

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

>Бог и есть и его нет - одновременно :)

какой идеологическиплюсовой речекряк. голова от двоемыслия не пухнет?

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

>>>Бога нет.

>>Бездоказательное утверждение.

>бездаказательное утверждение.

Кант уже давно доказал, что существование Бога нельзя ни доказать, ни опровергнуть.

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

Основное различие между двумя типами скриптов состоит в том, что System V выделяет один каталог для скриптов управления сервисами, и несколько (для каждого уровня запуска) отдельных каталогов, содержащих ссылки на эти скрипты. Имена скриптов обычно соответствуют именам сервисов. Имена ссылок из каталогов, соответствующих уровням запуска, содержат (помимо имени сервиса), также и букву, обозначающую необходимое для выполнения действие — запуск или остановку. BSD тип скриптов предусматривает только один скрипт — общий для всех уровней выполнения; внутри этого скрипта запускаются все необходимые для конкретного уровня сервисы. Мне более гибкий и прозрачный метод System V удобнее каши BSD.

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

Не называйте на себя беду, грешники!

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

>>>>Бога нет.

>>>Бездоказательное утверждение.

>>бездаказательное утверждение.

>Кант уже давно доказал, что существование Бога нельзя ни доказать, ни опровергнуть.

деда мороза не существует. это утверждение нельзя ни доказать, ни опровергнуть.

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

> Бог и есть и его нет - одновременно :)

обычно это называется: придти к противоречию. теперь определитесь, что вы изначально предположили, и что-нибудь вы обязательно докажете... :P

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

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

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

> Они не исправляют недостатки, а придумывают велосипед.

С этим согласен. Вместо того, чтоб заменить ублюдочный sysV init, делают
к нему кучу костылей.

> Стандартная нумерация init-скриптов - это лучшее решение.

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

Примеры:

1. При использовании nss-ldap нужно запустить nscd *перед* тем, как будет запущены
NFS демоны (rpc.gssd, rpc.idmapd, и собственно nfsd)

2. Если используется NFSv4 с -o sec=krb5*, то перед запуском NFS демонов нужно
запустить ntpd (демон, синхронизирующий часы).

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

[Занудно]

> Иисус вас любит,

Мне не нужна эта гипотеза (C).

> но офтопить по этому поводу лучше не стоит.

Ваше сообщение провоцирует к обратному.

Dselect ★★★
()

Кажется ли мне, что такое уже сто лет как есть в генте?

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

> деда мороза не существует. это утверждение нельзя ни доказать, ни опровергнуть.

хм. а я его на НГ видел. и не раз.

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

> Бог и есть и его нет - одновременно :)

Т.е. находится в квантово-спутанном состоянии есть-нет.

> Поэтому оба правы :)

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

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

Какие-то странные примеры.

1. в любом случае nscd должен стартовать (если вообще стартует) перед NFS.

2) в любом случае ntpd следует сразу за сетью и до всего остального, что теоретически может хотеть точного времени. Кстати, ntpd настолько капризен, что я бы запускал не его, а сначала ntpdate, а там уж опционально ntpd .

AVL2 ★★★★★
()

init-скрипты устарели и должны немедленно умереть.

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

>Другие верят, что бога нет.

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

>Мне более гибкий и прозрачный метод System V удобнее каши BSD.

вот какраз сюс5 каша и есть натуральная и никому ненужне десятки ранлевелов, и путанница с номерами. в bsd-like ините всё просто и логично, и не требуется таких котылей -- ибо система сама просчитает в каком порядке что пускать и что от чего зависит

timth ★☆
()

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

baka-kun ★★★★★
()

Господа, защищающие BSD-like-инициализацию. Дайте-ка сюда или выложите куда-нибудь свой один большой скрипт, я хочу полюбоваться.

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

> Господа, защищающие BSD-like-инициализацию. Дайте-ка сюда или выложите куда-нибудь свой один большой скрипт, я хочу полюбоваться.

А не получишь, большенство сервисов стартуют из /usr/local/etc/init.d/ :))

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

> Господа, защищающие BSD-like-инициализацию. Дайте-ка сюда или выложите куда-нибудь
> свой один большой скрипт, я хочу полюбоваться.

У нас у всех много маленьких в /etc/rc.d и /usr/local/etc/rc.d

Вроде такого:

#!/bin/sh
#
# $FreeBSD: src/etc/rc.d/bthidd,v 1.1 2006/09/07 22:25:08 emax Exp $
#

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

. /etc/rc.subr

name="bthidd"
command="/usr/sbin/${name}"
pidfile="/var/run/${name}.pid"
rcvar=`set_rcvar`
start_precmd="bthidd_prestart"

bthidd_prestart()
{
        load_kld -m kbdmux kbdmux
        load_kld -m vkbd vkbd
        load_kld -m ng_btsocket ng_btsocket
        return 0
}

load_rc_config $name
config="${bthidd_config:-/etc/bluetooth/${name}.conf}"
hids="${bthidd_hids:-/var/db/${name}.hids}"
command_args="-c ${config} -H ${hids} -p ${pidfile}"
required_files="${config}"

run_rc_command "$1"

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