Debian Symlink существующий демон incrond для запуска при загрузке
Я пытаюсь запустить демон incron " incrond " при загрузке, но он не работает.
Я сделал:
ln -s /usr/sbin/incrond /etc/init.d/incrond
chmod 755 /etc/init.d/incrond
update-rc.d incrond enable
Но там не работает ни один " инрондный " пид.
Вопрос
Должен ли я абсолютно использовать /etc/init.d/skeleton в качестве отправной точки или все еще возможно использовать символическую ссылку на существующий демон " incrond ", и как тогда?
Замечания:
В этом дистрибутиве Lenny у меня нет " начала сервисного имени ".
РЕДАКТИРОВАТЬ: как поваренная книга, вот способ, которым я решил это, благодаря подсказкам ответов
# Update the discontinued Lenny sources list ("vim /etc/apt/sources.list")
# Reinstall incron ("aptitude reinstall incron"), maybe should also reinstall inotify-tools
# Create manually the famous missing start script ("vim /etc/init.d/incron" and, chmod 755 this file)
# Run the daemon at boot ("update-rc.d incron enable")
# Check start/stop args passed to the daemon ("/etc/init.d/incron restart" and then, "pidof incrond")
# Reboot and control again that the daemon incrond is running (use "pidof" or "ps -ef | grep incron" or "cat /var/run/incron.pid")
Примечание: я нашел хорошую основу для сценария запуска здесь, но не столкнулся с этой проблемой.
3 ответа
ln -s /usr/sbin/incrond /etc/init.d/incrond
Это не работает так. Когда система запускает различные сценарии запуска для уровня запуска, она передает ей такие аргументы, как start, stop, restart и так далее. Вы не можете просто символическую ссылку на двоичный файл демона, так как этот двоичный файл либо потерпит неудачу, либо не будет правильно отвечать при передаче этих аргументов.
Вам почти наверняка понадобится создать скрипт запуска. Он не должен быть копией скелета, но должен принимать как минимум аргументы start, stop и restart.
Нет, не должно быть возможности делать то, что ты делаешь. В /etc/init.d (и управляется с помощью update-rc.d) есть специально отформатированные сценарии оболочки, которые вызывают указанные двоичные файлы. Просто связать этот двоичный файл с /etc/init.d не будет ничего полезного.
Как вы установили incron? Я не запускаю Debian, но пакет Ubuntu (Lucid) для incron
включает в себя /etc/init.d/incron
, который является правильным сценарием инициализации для службы. Да, вы можете использовать /etc/init.d/skeleton
в качестве отправной точки, но, действительно, в вашем пакете уже должен быть скрипт инициализации.
Что значит dpkg -L incron
сказать?
В пакете Debian Incron уже есть скрипт /etc/init.d/incron, который должен быть включен по умолчанию. Обычно вы просто устанавливаете пакет и запускаете его.
Теперь, когда вы изменили этот файл и, поскольку он является conffile, менеджер пакетов не заменит вашу версию упакованной версией. Я бы порекомендовал удалить скрипт /etc/init.d/incron, а затем запустить
apt-get -o DPkg::Options::='--force-confmiss' reinstall incron
Заставить менеджера пакетов заменить отсутствующий conffile.