Вы делаете 3 вещи неправильно, что я вижу.
Во-первых: вы хотите поместить вашу мягкую ссылку в /etc/rcS.d/
чтобы она работала, когда машина переходит в режим "однопользовательский" (нет доступных сетей), и в /etc/rc[2-5].d/
чтобы он работал, когда машина переходит в "многопользовательский" режим (уровни запуска от 2 до 5). Уровень запуска 0 /etc/rc0.d/
только в том случае, если машине приказано отключиться . Уровень запуска 6 используется для "перезагрузки". Смотрите страницу википедии по уровням выполнения UNIX
Второе: имя программной ссылки не может быть collection.sh
. Он должен иметь форму S09collection
где "S" означает « Старт», а "09" означает « Старт» после запуска всех сценариев 08 . Смотрите здесь для более подробной информации.
Третье: init используется для запуска сервисов демона и не должен использоваться для непосредственного запуска collection.sh. Вам необходимо создать настоящий скрипт инициализации, который обрабатывает запуск и остановку демона collection.sh. Изучите существующие сценарии инициализации в /etc/init.d/
чтобы понять, как они работают. В качестве альтернативы взгляните на следующие ссылки для получения дополнительной документации по написанию сценариев инициализации.
- Вот как писать сценарии инициализации, совместимые с LSB. Это рекомендуется для LSB-совместимых дистрибутивов Linux. Я заметил, что вы пометили свой вопрос "ubuntu", поэтому я должен отметить, что Ubuntu (как и все дистрибутивы на основе Debian) совместим с LSB.
- Вот вики-руководство Debian по созданию сценариев инициализации, совместимых с LSB.
- Вот "Быстрое и грязное", как использовать сценарии инициализации в стиле System V.
- Вот шаблон для сценария инициализации в стиле System V на Github.
Кроме того, вам не нужно создавать символические ссылки непосредственно в папках /etc/rc?.d
. Все основные дистрибутивы имеют автоматизированные инструменты для этого. Смотрите эту статью для более подробной информации.