nixp.ru v3.0

19 октября 2017,
четверг,
17:41:50 MSK

DevOps с компанией «Флант»
bars написал 27 июля 2004 года в 16:55 (548 просмотров) Ведет себя как мужчина; открыл 7 тем в форуме, оставил 33 комментария на сайте.

Подскажите пожалуйста, как внедрить в загрузку Линукса, свой демон, в каких директориях его прописывать и как это делается?

Заранее спасибо.

Nuclear

Расскажи подробней.

Какой дистрибутив?

Какой демон?

decvar

напиши что-нить в rc.sysinit. Можно создать скрипт запуска, положить в /etc/rc.d/rcX.d/S99CoolDeamon.

Uncle Theodore

В Слаке такое не пройдет. А кроме того, неплохо бы того демона и убивать при перезагрузке и выключении, соответственно, нужны

/etc/rc.d/rc6.d/K99CoolDeamon

/etc/rc.d/rc0.d/K99CoolDeamon

Кроме того, демон должен понимать start и stop обращенные к нему.

Good Luck,

UT

bars

Спасибо огромное за отклик.

у меня дистрибутив Linux RedHat 7.2

весь вопрос заключается в том, что была поставлена задача: написать программу протоколирования сообщений от подсистем. И сделать эту программу демоном, чтоб при запуске ПО, программа начинала свою работу, а после выдачи команды shutdown -h now, демон выгрузился как и стандартные демоны Линукса.

Я написал демон, но потом пошли проблемы, куда и где дописывать скрипт? Там есть несколько вариантов: 1-й файл называть @K56имя_программы

2-й назвать как @S56имя_программы

Uncle Theodore

У меня редхата нету, но насколько я помню, ты пишешь запускающий/останавливающий скрипт в /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

bars

Спасибо большое за ответ:)

Я попробую такой вариант.

Еще один вопрос: когда я создаю симлинк, допустим /etc/rc.d/rc5.d/S99CoolDeamon, какие строки в нем должны быть? Я попытался сделать такой симлинк, взял скрипт с другого симлинка — это не опасно?

Еще раз большое спасибо

Uncle Theodore

Ой-ё-ёй! Погоди, какие строки могут быть в симлинке?

Зайди в /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

bars

Спасибо тебе, за то, что возишься со мной, я в этом деле новичок:)

Я так и попробую.

Если что, можно будет еще обратиться за помощью?

Uncle Theodore

Всегда пожалуйста. Для того это место и создано, чтобы получить совет, когда надо.

Good Luck,

UT

bars

Привет, большое спасибо тебе:)

У меня получилось, так как ты и рассказал.

Еще раз спасибо:)

Юра