Неполный комментарий LSB. insserv: отсутствует допустимое имя для "Предоставляет:", пожалуйста, добавьте
Недавно я установил: Debian x86_64, oracle 11g и OCI8. Я хотел бы включить автоматическую оболочку script ниже, но я получил следующую ошибку сообщения:
root @debian:/etc/init.d# uname -a
Linux debian 3.2.0-4-amd64 # 1 SMP Debian 3.2.54-2 x86_64 GNU/Linux
root @debian:/etc/init.d# update-rc.d oracle-shm по умолчанию
update-rc.d: использование последовательности загрузки на основе зависимостей
insserv: script oracle-shm нарушен: неполный комментарий LSB.
insserv: отсутствует допустимое имя для "Предоставляет:", пожалуйста, добавьте.
В моем файле конфигурации он содержит комментарий, как вы можете видеть ниже.
#! /bin/sh
case "$1" in
start)
echo "Starting script /etc/init.d/oracle-shm"
# Run only once at system startup
rm -rf /dev/shm
mkdir /dev/shm
mount -t tmpfs shmfs -o size=2048m /dev/shm
touch /dev/shm/.oracle-shm
;;
stop)
echo "Stopping script /etc/init.d/oracle-shm"
echo "Nothing to do"
;;
*)
echo "Usage: /etc/init.d/oracle-shm {start|stop}"
exit 1
;;
esac
#
### BEGIN INIT INFO
# Provides: oracle-shm
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Bind /run/shm to /dev/shm at system startup.
# Description: Fix to allow Oracle 11g use AMM.
### END INIT
Не могли бы вы посоветовать мне его решить? Большое спасибо! Marcos
Ответы
Ответ 1
Я также получил сообщение insserv: missing valid name for 'Provides:' please add...
когда (re-) запускается какая-то служба init.d foo
. В файле /etc/init.d/foo
есть допустимая строка Provides
, т.е.
...
# Provides: foo
...
Тем не менее, служба foo
запустилась нормально, несмотря на это сообщение об ошибке.
Оказалось, что insserv или что-то еще, похоже, жалуются на проблемы в любом скрипте init.d, найденном в каталоге /etc/init.d/**
, не обязательно тот, который запущен в настоящее время (re-).
Поэтому выполните следующую команду, чтобы найти проблемные сценарии init.d:
cd /etc/init.d/ && sudo grep -rin Provides
Он перечислит все строки Provides
всех скриптов, найденных в /etc/init.d/
Проверьте, есть ли у всех действительное имя.
В моем случае был файл /etc/init.d/template
котором была строка Provides
без имени.
После того как я изменил строку файла с помощью Provides: template
Provides:, сообщение об ошибке insserv исчезло.