/etc/init.d/lvm2 скрипт не выполняется при запуске
При запуске я хочу /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