bars
написал 27 июля 2004 года в 16:55 (1000 просмотров)
Ведет себя
как мужчина; открыл 7 тем в форуме, оставил 33 комментария на сайте.
Подскажите пожалуйста, как внедрить в загрузку Линукса, свой демон, в каких директориях его прописывать и как это делается?
Заранее спасибо.
Последние комментарии
- OlegL, 17 декабря в 15:00 → Перекличка 21
- REDkiy, 8 июня 2023 года в 9:09 → Как «замокать» файл для юниттеста в Python? 2
- fhunter, 29 ноября 2022 года в 2:09 → Проблема с NO_PUBKEY: как получить GPG-ключ и добавить его в базу apt? 6
- Иванн, 9 апреля 2022 года в 8:31 → Ассоциация РАСПО провела первое учредительное собрание 1
- Kiri11.ADV1, 7 марта 2021 года в 12:01 → Логи catalina.out в TomCat 9 в формате JSON 1
ecobeing.ru
Экология и вегетарианство на благо всем живым существам Планеты.
Расскажи подробней.
Какой дистрибутив?
Какой демон?
напиши что-нить в rc.sysinit. Можно создать скрипт запуска, положить в /etc/rc.d/rcX.d/S99CoolDeamon.
В Слаке такое не пройдет. А кроме того, неплохо бы того демона и убивать при перезагрузке и выключении, соответственно, нужны
/etc/rc.d/rc6.d/K99CoolDeamon
/etc/rc.d/rc0.d/K99CoolDeamon
Кроме того, демон должен понимать start и stop обращенные к нему.
Good Luck,
UT
Спасибо огромное за отклик.
у меня дистрибутив Linux RedHat 7.2
весь вопрос заключается в том, что была поставлена задача: написать программу протоколирования сообщений от подсистем. И сделать эту программу демоном, чтоб при запуске ПО, программа начинала свою работу, а после выдачи команды shutdown -h now, демон выгрузился как и стандартные демоны Линукса.
Я написал демон, но потом пошли проблемы, куда и где дописывать скрипт? Там есть несколько вариантов: 1-й файл называть @K56имя_программы
2-й назвать как @S56имя_программы
У меня редхата нету, но насколько я помню, ты пишешь запускающий/останавливающий скрипт в /etc/rc.d, а в ранлевелы создаешь симлинки. Те, которые называются KXXSomething убивают демон (т.е. вызывают основной скрипт с параметром stop), а те, которые называются SXXSomething — запускают его (вызывают с параметром start). Числа XX в именах позволяют тебе установить порядок, в котором это происходит при запуске/остановке системы. Если ты, скажем, хочешь, чтобы CoolDemon стартовал на пятом ранлевеле, а при перезагрузке или выключении машины аккуратно останавливался, создай что-то типа
/etc/rc.d/rc5.d/S99CoolDeamon
/etc/rc.d/rc6.d/K88CoolDeamon
/etc/rc.d/rc0.d/K141CoolDeamon
симлинками на /etc/rc.d/CoolDeamon
Число 99, 88 и т.д. — не принципиальны, но определяют, в каком порядке будут выполнены стартования/убийства при смене ранлевела на 5, 6 и 0 соответственно.
Good Luck,
UT
Спасибо большое за ответ:)
Я попробую такой вариант.
Еще один вопрос: когда я создаю симлинк, допустим /etc/rc.d/rc5.d/S99CoolDeamon, какие строки в нем должны быть? Я попытался сделать такой симлинк, взял скрипт с другого симлинка — это не опасно?
Еще раз большое спасибо
Ой-ё-ёй! Погоди, какие строки могут быть в симлинке?
Зайди в /etc/rc.d погляди на какой-нибудь тамошний скрипт. Скорее всего, он выглядит как что-то типа
#!/bin/sh
case $1 in
«start»)
/usr/local/bin/someProgram
;;
«end»)
killall someProgram
;;
esac;
Ну или что-то более красявое. Сделай такую же бяку для своей проги — опиши как ее стартовать, как завершать. запиши все это в файл, сделай его исполняемым и помести в /etc/rc.d Пусть он называется /etc/rc.d/CoolDeamon.sh
Потом иди в /etc/rc5.d и пиши в консоли (как рут)
ln -s S99CoolDeamon /etc/rc.d/CoolDeamon.sh
и соответственно для убийства демона иди в /etc/rc0.d и /etc/rc6.d и линкуй там как
ln -s K98CoolDeamon /etc/rc.d/CoolDeamon.sh
Повторюсь, что пишу по памяти, последний раз трахался с редхатоподобным дистрибуром года три назад. Так что нехай товарищи поправят, если что.
Good Luck,
UT
Спасибо тебе, за то, что возишься со мной, я в этом деле новичок:)
Я так и попробую.
Если что, можно будет еще обратиться за помощью?
Всегда пожалуйста. Для того это место и создано, чтобы получить совет, когда надо.
Good Luck,
UT
Привет, большое спасибо тебе:)
У меня получилось, так как ты и рассказал.
Еще раз спасибо:)
Юра