В общем решил очередной сервер на debian установить. Возникла необходимость запускать некоторые сервисы в schroot, т.к. система 64битная, а сервисы (всего пара) нужны 32битные.
Настроил всё, но остался вопрос как стартовать и останавливать эти сервисы при запуске и остановке системы?
Какой есть механизм, вроде gentoo'шного /etc/conf.d/local.start и /etc/conf.d/local.stop ? Что-то не увидел я такого.
Запуск сервисов в schroot
Модераторы: Warderer, Модераторы разделов
-
sash-kan
- Администратор
- Сообщения: 13939
- Статус: oel ngati kameie
- ОС: GNU
Re: Запуск сервисов в schroot
если нужно просто выполнить команды при старте, то /etc/rc.local
если нужны полноценные старт/стоповые скрипты, то они находятся в /etc/init.d/, их запуск с параметрами start/stop осуществляется благодаря symlink-ам в /etc/rc?.d, которыми можно заведовать и вручную, а можно и, например, через update-rc.d.
по поводу запуска демонов в schroot прочитайте в man schroot.
если нужны полноценные старт/стоповые скрипты, то они находятся в /etc/init.d/, их запуск с параметрами start/stop осуществляется благодаря symlink-ам в /etc/rc?.d, которыми можно заведовать и вручную, а можно и, например, через update-rc.d.
по поводу запуска демонов в schroot прочитайте в man schroot.
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
при сбоях форума см.блог
-
watashiwa_daredeska
- Бывший модератор
- Сообщения: 4038
- Статус: Искусственный интеллект (pre-alpha)
- ОС: Debian GNU/Linux
Re: Запуск сервисов в schroot
Добавлю, что имеется /etc/init.d/skeleton — скелет rc-скрипта, который сильно облегчает задачу написания собственного rc-скрипта.
Мои розовые очки
-
prof
- Сообщения: 119
- ОС: gentoo
Re: Запуск сервисов в schroot
Мне показалось, что я смог объяснить что сам запуск освоен, речь идёт об автоматизации процесса.по поводу запуска демонов в schroot прочитайте в man schroot.
Жаль, надеялся на существование подобных механизмов "везде". Ладно, будем велоспедить.Добавлю, что имеется /etc/init.d/skeleton — скелет rc-скрипта, который сильно облегчает задачу написания собственного rc-скрипта.
-
watashiwa_daredeska
- Бывший модератор
- Сообщения: 4038
- Статус: Искусственный интеллект (pre-alpha)
- ОС: Debian GNU/Linux
Re: Запуск сервисов в schroot
Ну, можете считать, что /etc/init.d/skeleton не существует, и не велосипедить
Мои розовые очки
-
prof
- Сообщения: 119
- ОС: gentoo
Re: Запуск сервисов в schroot
Опять меня не поняли.watashiwa_daredeska писал(а): ↑08.04.2011 23:57Ну, можете считать, что /etc/init.d/skeleton не существует, и не велосипедить
Мне не нужны полноценные rc-скрипты, т.к. они уже есть внутри schroot'а установлены. Нужно их только запустить при старте и остановить при выключении системы. А мне предлагают написать скрипты с файлами конфигурации в /etc/default, с созданием pid-файлов и прочее. Вот это и есть "велосипедить"
Всего-то стоило ответить что аналога local.stop нет. Аналог local.start я видел.
-
sash-kan
- Администратор
- Сообщения: 13939
- Статус: oel ngati kameie
- ОС: GNU
Re: Запуск сервисов в schroot
т.е. старт-стоповый скрипт (понимающий по крайней мере пару аргументов start и stop) имеется? так поместите его в /etc/init.d и ссылку сделайте из нужных runlevel-ов. и всё.
кто это вам предлагал?
это что-то из bsd-init-style? вы думаете, много кто за пределами узких рядов bsd-любителей что-то о них слышал? напрасно.
p.s. wikipedia://init — в помощь.
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
при сбоях форума см.блог
-
prof
- Сообщения: 119
- ОС: gentoo
Re: Запуск сервисов в schroot
Вы сами пытались читать man schroot как рекомендовали мне? Представляете себе разницу в функционировании процессов внутри и вне chroot'а?
Как бэ:
Или привести выдержки из самого /etc/init.d/skeleton?Добавлю, что имеется /etc/init.d/skeleton — скелет rc-скрипта, который сильно облегчает задачу написания собственного rc-скрипта.
Ну так и спросили бы, раз не знаете.
-
sash-kan
- Администратор
- Сообщения: 13939
- Статус: oel ngati kameie
- ОС: GNU
Re: Запуск сервисов в schroot
тот, что нашёл в интернете, просмотрел на предмет упоминаний о демонизации. на беглый взгляд — довольно внятно изложено.
разницу в функционировании предствляю.
в моей системе:
# Read configuration variable file if it is present
[ -r /etc/default/$NAME ] && . /etc/default/$NAME
надеюсь, перевод не нужен и понятно, что наличие файла — опционально.
и скрипт вам писать не предлагают. он уже есть. /etc/init.d/skeleton. скопируйте и подставьте в него нужное.
а я догадливый. а вам порекомендую всё-таки взглянуть на статью в википедии. чтобы примерно уяснить себе ту пропасть, что лежит между bsd и sysv стилями инициализации. а то так и будете возмущаться, почему никто не догадывается, чего же именно вы не знаете/понимаете.
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
при сбоях форума см.блог
-
prof
- Сообщения: 119
- ОС: gentoo
Re: Запуск сервисов в schroot
Там не нужно практически всё. Не нужны:sash-kan писал(а): ↑09.04.2011 21:00в моей системе:
# Read configuration variable file if it is present
[ -r /etc/default/$NAME ] && . /etc/default/$NAME
надеюсь, перевод не нужен и понятно, что наличие файла — опционально.
и скрипт вам писать не предлагают. он уже есть. /etc/init.d/skeleton. скопируйте и подставьте в него нужное.
DAEMON=/usr/sbin/$NAME
DAEMON_ARGS="--options args"
PIDFILE=/var/run/$NAME.pid
start-stop-daemon --start
start-stop-daemon --stop
Поиск по пидфайлу, которого не будет. Нужно выполнение некоторых команд в самом конце инициализации, и в самом начале при отключении системы. Единственное что приходит в голову, это использования skeleton для разработки аналога /etc/init.d/local.
Да я и сам догадливый, до gentoo долго пользовался redhat-based решениями. Так что разницу между sysv и bsd стилями знаю хорошо.sash-kan писал(а): ↑09.04.2011 21:00а я догадливый. а вам порекомендую всё-таки взглянуть на статью в википедии. чтобы примерно уяснить себе ту пропасть, что лежит между bsd и sysv стилями инициализации. а то так и будете возмущаться, почему никто не догадывается, чего же именно вы не знаете/понимаете.
-
KiWi
- Бывший модератор
- Сообщения: 2521
- Статус: статус, статус, статус
Re: Запуск сервисов в schroot
prof писал(а): ↑09.04.2011 16:12Опять меня не поняли.watashiwa_daredeska писал(а): ↑08.04.2011 23:57Ну, можете считать, что /etc/init.d/skeleton не существует, и не велосипедить
Мне не нужны полноценные rc-скрипты, т.к. они уже есть внутри schroot'а установлены. Нужно их только запустить при старте и остановить при выключении системы. А мне предлагают написать скрипты с файлами конфигурации в /etc/default, с созданием pid-файлов и прочее. Вот это и есть "велосипедить"
Всего-то стоило ответить что аналога local.stop нет. Аналог local.start я видел.
Что мешает написать init-скрипт, запускающий init в chroot, чтобы тот в свою очередь запустил сервисы внутри chroot?
-
prof
- Сообщения: 119
- ОС: gentoo
Re: Запуск сервисов в schroot
То же, что не позволяет нанимать шагающий карьерный экскаватор для выкапывания выгребной ямы под дачным туалетом.
"Велосипед" получился не плохим, ИМХО. Пришлось допилить rc.local. Получилось, вроде, как в openrc. Заинтересованных лиц приглашаю к тестированию.
Код: Выделить всё
#! /bin/sh
### BEGIN INIT INFO
# Provides: rc.zlocal
# Required-Start: $remote_fs $syslog $all
# Required-Stop:
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Run scripts from /etc/local.d if it's exist
### END INIT INFO
PATH=/sbin:/usr/sbin:/bin:/usr/bin
. /lib/init/vars.sh
. /lib/lsb/init-functions
do_start() {
[ "$VERBOSE" != no ] && log_begin_msg "Running local start scripts from /etc/local.d"
local file
local s_name
for file in /etc/local.d/*.start ; do
s_name=$(basename "$file")
[ "$VERBOSE" != no ] && log_begin_msg "> $s_name"
[ -x "$file" ] && "$file"
ES=$?
[ "$VERBOSE" != no ] && log_end_msg $ES
done
[ "$VERBOSE" != no ] && log_end_msg 0
return 0
}
do_stop() {
[ "$VERBOSE" != no ] && log_begin_msg "Running local stop scripts from /etc/local.d"
local file
local s_name
for file in /etc/local.d/*.stop; do
s_name=$(basename "$file")
[ "$VERBOSE" != no ] && log_begin_msg "> $s_name"
[ -x "$file" ] && "$file"
ES=$?
[ "$VERBOSE" != no ] && log_end_msg $ES
done
[ "$VERBOSE" != no ] && log_end_msg 0
return 0
}
case "$1" in
start)
do_start
;;
restart|reload|force-reload)
$0 stop
$0 start
;;
stop)
do_stop
;;
*)
echo "Usage: $0 {start|stop|restart|force-reload|reload}" >&2
exit 3
;;
esacПринимаются предложения по названию.