1 (21.11.2011 14:18:48 отредактировано kamaok)

Здравствуйте, ув форумчане!
Есть вопрос.На Gentoo через Debian chroot-окружение было установлено приложение DellOMSA.
Для нормального запуска и работы этого приложения необходимо выполнить команды.
mount -o bind /dev /var/debian/dev
mount -t proc none /var/debian/proc
mount -o bind /sys /var/debian/sys
chroot /var/debian/ /bin/bash
/etc/init.d/dataeng start
/etc/init.d/dsm_om_connsvc start
При ручном вводе этой последовательности команд все работает отлично.
Теперь необходимо настроить Gentoo чтобы после его перезагрузки все "заводилось" автоматом
Если я правильно понимаю,то монтирование файловых систем(первые три команды) можно "прикрутить" с помощью добавления записи в /etc/fstab такого содержания:
dev /var/debian/dev none rw,bind 0 0
proc /var/debian/proc none  0 0
/sys /var/debian/sys none rw,bind 0 0

Смена chroot-окружения и дальнейшее выполнение в нем команд(запуск приложения) вызывает у меня трудности.В bash-программировании я не силен.Так что, по возможности,подскажите подробнее пути решения этого вопроса
Заранее благодарен
P.S. С Gentoo только знакомлюсь поэтому сильно не пинайте smile

2 (21.11.2011 13:00:27 отредактировано zenon)

proc, dev и sys не обязательно прописывать в fstab вот у меня как-то так:

# cat /etc/fstab
/dev/sdb1  /              reiserfs   noatime,nodiratime,notail    0 1
/dev/sdb5  /var           reiserfs   notail              0 2
/dev/sdb4  /home          ext4       discard,noatime,nodiratime   0 2
/dev/sdb3  /mnt/torrents  ext4       discard,noatime,nodiratime   0 2
/dev/sda1  /mnt/deb       reiserfs   noatime,nodiratime,notail    0 2
/dev/sda5  none           swap       sw                           0 0
shm        /dev/shm       tmpfs      nodev,nosuid,noexec          0 0
/dev/sda10 /usr           ext4       discard,noatime,nodiratime   0 2
/dev/sda6  /usr/portage   reiserfs   notail                       0 2
/dev/sda9  /srv           ext4       defaults                     0 2
# Если /tmp нужен в ОЗУ
none       /tmp           tmpfs      defaults                     0 0
История показывает, что во всем новом обычно кроется какой-то подвох.
Классическая ошибка, которую совершают проектировщики
абсолютно надежных систем, - недооценка изобретательности клинических идиотов.

3

fix:

kamaok пишет:

dev /var/debian/dev none rw,bind 0 0
none /var/debian/proc proc defaults 0 0
/sys /var/debian/sys none rw,bind 0 0

ещё при bind'e я тип ещё прописываю auto, не знаю, на сколько это критично.

с составлением стартовых скриптов/куда это пихнуть в загрузку помочь затрудняюсь...

newzenon пишет:

proc, dev и sys не обязательно прописывать в fstab вот у меня как-то так:

не о том в ветке речь...

95% процентов проблем находятся между клавиатурой и стулом.

4

kamaok пишет:

/dev /var/debian/dev none rw,bind 0 0

Вы ведь монтируете директорию.
Стартовые скрипты можно написать в /etc/local.d/*.start
Соответственно, можно еще сделать какой-то клинап в /etc/local.d/*.stop
Но, только я не знаю,  насколько это подойдет вам именно в этой ситуации. Там ведь chroot.
Можно попробовать написать скрипт, стартующий эти демоны (/etc/init.d/dataeng и /etc/init.d/dsm_om_connsvc) внутри дебиановского рута и передавать этот скрипт параметром при chroot вместо /bin/bash
Но это только в порядке бреда. Не уверен, что сработает.

Йа тьомный эльф

5

bobr пишет:

Можно попробовать написать скрипт, стартующий эти демоны (/etc/init.d/dataeng и /etc/init.d/dsm_om_connsvc) внутри дебиановского рута и передавать этот скрипт параметром при chroot вместо /bin/bash
Но это только в порядке бреда. Не уверен, что сработает.

кстати, я в своё время для быстрого входа в chroot для сборки пакетов для ёжика по-другому немного делал, передавал башу в chroot'е скрипт на исполнение:

goin(){
        echo "### Entering chroot"
        echo "env-update" > $EEEROOT/root/updateenv.sh
        echo "source /etc/profile" >> $EEEROOT/root/updateenv.sh
        echo "PS1=\"(eee) \$PS1\"" >> $EEEROOT/root/updateenv.sh
        chmod u+x $EEEROOT/root/updateenv.sh
        chroot $EEEROOT /bin/bash --rcfile /root/updateenv.sh
}
95% процентов проблем находятся между клавиатурой и стулом.

6 (22.11.2011 19:31:35 отредактировано zenon)

Я вот тоже со стартовыми скриптами задумывался, скрипт iptables добавил в /etc/conf.d/net

postup() {
 if [ "${IFACE}" = "eth0" ]; then
    /usr/local/sbin/fire/start
 fi
 return 0
}

Также для себя писал простой init - скрипт с пустым case - start/stop/restart, - и добавлял что надо.

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

7

newzenon, для iptables есть штатные скрипты /etc/init.d/iptables

Йа тьомный эльф

8

bobr, мне он не нравится.  smile

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

9 (27.11.2011 15:59:02 отредактировано kamaok)

Сделал следующим образом.Криво до безобразия,но только так все завелось
Для того, чтобы после перезагрузки сервера все поднималось автоматически создаем скрипт dellomsa в /etc/init.d/
Ставим выполнение скрипта в автозагрузку:
rc-config add dellomsa default
(в /etc/runlevels/default появляется символьная ссылка на запуск скрипта)
Добавляем  в /etc/fstab следующее:
/dev /var/debian/dev none rw,bind 0 0
/sys /var/debian/sys none rw,bind 0 0
Устанавливаем необходимые модули в автозагрузку путем добавления их в файл /etc/conf.d/modules
cat /etc/conf.d/modules
modules="ipmi_msghandler"
modules="ipmi_devintf"
modules="ipmi_si"


Замечено:
1.Необходимые модули подключаются автоматически при загрузке ядра(lsmod | grep ipmi показывает их), но без включения их в скрипт  Ipmi driver не запускается.Поэтому оставил их запуск еще и в скрипте.
2.Все «пляски» были в основном вокруг монтирования файловой системы /proc. При ручном монтировании командой
mount -t proc none /var/debian/proc
все необходимые службы запускаются нормально. При добавлении в /etc/fstab строки вида
proc /var/debian/proc none bind rw 0 0 или строки вида
none /var/debian/proc proc defaults 0 0
при загрузки службы не запускались
Starting network management services:start-stop-daemon: nothing in /proc -not mounted?
Opening /proc/modules No such file or directory

Вообщем добавил монтирование proc в скрипт.
Содержание скрипта dellomsa:
#!/sbin/runscript

depend() {
     after *
     }
     
      start() {
            modprobe ipmi_msghandler
            modprobe ipmi_si
            modprobe ipmi_devintf
        mount -t proc none /var/debian/proc
          ebegin "dataeng start"
             chroot /var/debian /etc/init.d/dataeng start
#             chroot /var/debian /etc/init.d/dsm_om_connsvc start
                  eend $? "Failed to start dataeng"
                  }
                   
                   stop() {
                       ebegin "Stopping dataeng"
                chroot /var/debian /etc/init.d/dataeng stop
#                chroot /var/debian /etc/init.d/dsm_om_connsvc stop
                umount /var/debian/proc
                               eend $? "Failed to stop dataeng"
                               }
Хотелось бы монтировать proc через fstab, но вот какую строку туда необходимо добавить не знаю
Возможно,кто-то что-то подскажет?

10 (27.11.2011 19:46:13 отредактировано zenon)

proc   /proc   proc   rw         0 0
proc   /proc   proc   defaults   0 0

http://wiki.kryukov.biz/wiki/Файлы_fstab_и_mtab

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