daemontools — набір безкоштовних інструментів для керування сервісами в Unix. Був написаний Daniel J. Bernstein, як покращення inittab, ttys, init.d та rc.local, надаючи наступні можливості:
- Легке встановлення та видалення сервісів
- Легкий перший запуск сервісу
- Надійне перезавантаження сервісу
- Проста і надійна сигналізація
- Прозорість стану процесу
Тип | Управління сервісами unix. |
---|---|
Розробник | D. J. Bernstein |
Стабільний випуск | 0.76 |
Операційна система | Linux, Unix |
Мова програмування | C |
Вебсайт | cr.yp.to/daemontools.html |
Як пише сам автор програми — основна відмінність від звичайних засобів запуску (структури каталогів rcx.d або rc.d або rc.local та інші) — є можливість перезапускати сервіс у випадку його падіння та наявність програми ведення та ротації логів (multilog). Перевага першої відмінності — очевидні, а автоматична ротація логів дозволяє не вичерпати (навмисно або випадково) вільне місце в каталозі /var/log. Також multilog дозволяє вести логи виводу програм, котрі не вміють віддавати вивід в . Таким чином можна запускати як сервіс програми, котрі не були на це розраховані. Присутня практика використання цього пакету для запуску djbdns, , squid та apache.
Принцип роботи
На запущеній системі функціонують наступні процеси daemontools:
- svscanboot
- readproctitle
- svscan
- supervise
- svc
Svscanboot запускається при старті системи демоном init із inittab. Svscanboot запускає програму svscan в каталозі /service. В ньому будуть зберігатися відомості про сервіси, котрі daemontools буде контролювати — це підкаталоги, по одному для кожного сервісу. У випадку падіння svscanboot він перезапускається демоном init.
Svscan використовується для запуску і контролювання сервісів. Він запускає по одному процесу supervise, який і буде контролювати сервіс для кожного виявленого каталогу в /service (окрім тих, чиї імена починаються з точки). Svscan кожні 5 секунд перевіряє каталог /service на наявність нових підкаталогів. Якщо такі будуть виявлені — запускається нова копія supervise для кожного каталогу. Якщо в каталозі сервіса знаходиться каталог log, буде запущена ще одна копія supervise і створений pipeline між ними. Це створено для використання логування виводу програм минаючи — використовуючи вивід програми із stdout і stderr. В daemontools для цих цілей використовується програма multilog — авторська заміна syslog, хоч і працює за схожими принципами. Також svscan перенаправляє вивід всіх дочірніх процесів supervise в readproctitle через pipeline, створений svscanboot.
Supervise є процесом, що безпосередньо контролює сервіс. Він викликається з параметром, в якому міститься ім'я каталогу для контролюємого сервісу в /service. В цьому каталозі він шукає скрипт run, який і запускає. Якщо процес, обслуговуємий supervise падає, supervise перезапускає його. Supervise створює в каталозі сервісу підкаталог supervise, в якому містяться дані про процес. Ці дані можуть бути прочитані за допомогою програми svstat. Для управління сервісом використовується програма svc.
Svc — це програма для управління сервісами. Формат виклику:
svc opts service
де opts
— параметр, діючий на сервіс, а service
— ім'я каталогу сервісу.
Readproctitle — запускається програмою svscanboot. При старті svscan, його stderr і stdout перенаправляються в readproctitle.
Див. також
Посилання
- Офіційний сайт
- Інструкція (рос.)
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
daemontools nabir bezkoshtovnih instrumentiv dlya keruvannya servisami v Unix Buv napisanij Daniel J Bernstein yak pokrashennya inittab ttys init d ta rc local nadayuchi nastupni mozhlivosti Legke vstanovlennya ta vidalennya servisiv Legkij pershij zapusk servisu Nadijne perezavantazhennya servisu Prosta i nadijna signalizaciya Prozorist stanu procesudaemontoolsTip Upravlinnya servisami unix Rozrobnik D J BernsteinStabilnij vipusk 0 76Operacijna sistema Linux UnixMova programuvannya CVebsajt cr yp to daemontools html Yak pishe sam avtor programi osnovna vidminnist vid zvichajnih zasobiv zapusku strukturi katalogiv rcx d abo rc d abo rc local ta inshi ye mozhlivist perezapuskati servis u vipadku jogo padinnya ta nayavnist programi vedennya ta rotaciyi logiv multilog Perevaga pershoyi vidminnosti ochevidni a avtomatichna rotaciya logiv dozvolyaye ne vicherpati navmisno abo vipadkovo vilne misce v katalozi var log Takozh multilog dozvolyaye vesti logi vivodu program kotri ne vmiyut viddavati vivid v Takim chinom mozhna zapuskati yak servis programi kotri ne buli na ce rozrahovani Prisutnya praktika vikoristannya cogo paketu dlya zapusku djbdns squid ta apache Princip robotiNa zapushenij sistemi funkcionuyut nastupni procesi daemontools svscanboot readproctitle svscan supervise svc Svscanboot zapuskayetsya pri starti sistemi demonom init iz inittab Svscanboot zapuskaye programu svscan v katalozi service V nomu budut zberigatisya vidomosti pro servisi kotri daemontools bude kontrolyuvati ce pidkatalogi po odnomu dlya kozhnogo servisu U vipadku padinnya svscanboot vin perezapuskayetsya demonom init Svscan vikoristovuyetsya dlya zapusku i kontrolyuvannya servisiv Vin zapuskaye po odnomu procesu supervise yakij i bude kontrolyuvati servis dlya kozhnogo viyavlenogo katalogu v service okrim tih chiyi imena pochinayutsya z tochki Svscan kozhni 5 sekund pereviryaye katalog service na nayavnist novih pidkatalogiv Yaksho taki budut viyavleni zapuskayetsya nova kopiya supervise dlya kozhnogo katalogu Yaksho v katalozi servisa znahoditsya katalog log bude zapushena she odna kopiya supervise i stvorenij pipeline mizh nimi Ce stvoreno dlya vikoristannya loguvannya vivodu program minayuchi vikoristovuyuchi vivid programi iz stdout i stderr V daemontools dlya cih cilej vikoristovuyetsya programa multilog avtorska zamina syslog hoch i pracyuye za shozhimi principami Takozh svscan perenapravlyaye vivid vsih dochirnih procesiv supervise v readproctitle cherez pipeline stvorenij svscanboot Supervise ye procesom sho bezposeredno kontrolyuye servis Vin viklikayetsya z parametrom v yakomu mistitsya im ya katalogu dlya kontrolyuyemogo servisu v service V comu katalozi vin shukaye skript run yakij i zapuskaye Yaksho proces obslugovuyemij supervise padaye supervise perezapuskaye jogo Supervise stvoryuye v katalozi servisu pidkatalog supervise v yakomu mistyatsya dani pro proces Ci dani mozhut buti prochitani za dopomogoyu programi svstat Dlya upravlinnya servisom vikoristovuyetsya programa svc Svc ce programa dlya upravlinnya servisami Format vikliku svc opts service de opts parametr diyuchij na servis a service im ya katalogu servisu Readproctitle zapuskayetsya programoyu svscanboot Pri starti svscan jogo stderr i stdout perenapravlyayutsya v readproctitle Div takozhDemon programa PosilannyaOficijnij sajt Instrukciya ros