2

При запуске я хочу, чтобы скрипт /etc/init.d/lvm2 поставляемый с Debian squeeze, был выполнен. Я запустил update-rc.d lvm2 enable и проверил, что символические ссылки созданы в папках /etc/rcX.d :

# find /etc -name "*lvm2"
/etc/rc6.d/K09lvm2
/etc/rc0.d/K09lvm2
/etc/init.d/lvm2
/etc/rcS.d/S05lvm2

Выполнение сценария вручную работает и тома lvm правильно активированы, но после запуска ничего не произошло. В lvm в /var /log ничего нет. Я попытался добавить регистратор строк logger Starting lvm в начало функции start() в сценарии инициализации, но, опять же, в журналах ничего не появляется.

Как я могу отследить ошибку и выяснить, почему она не запускается должным образом? Я бы не хотел помещать вещи, которые поставляются с дистрибутивом, в rc.local .


Позвольте мне также показать вам сценарий инициализации. Еще одно примечание: команды перед [ -x /sbin/vgchange ] || exit 0 также не выполняется, поэтому это не может быть та строка, которая приводит к выходу скрипта. На первый взгляд, я также не видел циклов зависимости или чего-то подобного среди сценариев инициализации.

#!/bin/sh
### BEGIN INIT INFO
# Provides:          lvm2 lvm
# Required-Start:    mountdevsubfs udev
# Required-Stop:
# Should-Start:      mdadm-raid cryptdisks-early multipath-tools-boot
# Should-Stop:       umountroot mdadm-raid
# X-Start-Before:    checkfs mountall
# X-Stop-After:      umountfs
# Default-Start:     S
# Default-Stop:      0 6
### END INIT INFO

SCRIPTNAME=/etc/init.d/lvm2

. /lib/lsb/init-functions

[ -x /sbin/vgchange ] || exit 0

do_start()
{
        logger starting lvm
        modprobe dm-mod 2> /dev/null || :
        /sbin/vgscan --ignorelockingfailure --mknodes || :
        /sbin/vgchange -aly --ignorelockingfailure || return 2
}

do_stop()
{
        /sbin/vgchange -aln --ignorelockingfailure || return 2
}

case "$1" in
  start)
        log_begin_msg "Setting up LVM Volume Groups"
        do_start
        case "$?" in
                0|1) log_end_msg 0 ;;
                2) log_end_msg 1 ;;
        esac
        ;;
  stop)
        log_begin_msg "Shutting down LVM Volume Groups"
        do_stop
        case "$?" in
                0|1) log_end_msg 0 ;;
                2) log_end_msg 1 ;;
        esac
        ;;
  restart|force-reload)
        ;;
  *)
        echo "Usage: $SCRIPTNAME {start|stop}" >&2
        exit 3
        ;;
esac

0