supervisord a více stejných procesů rubrika: Programování: Jiné

12 dzejkob
položil/-a 30.11.2015

Pro řízení a sledování procesů mi byl doporučen supervisord.

Co to pročítám, tak to toho umí hodně - mohl bych vytvořit

[program:neco]
command=/usr/bin/binarka
autostart=false
autorestart=false

a pak přes rpc to i uvnitř jakéhokoliv jazyka mohu jednorázově spustit. Nemohu to ovšem spustit opakovaně a nelze tomu poslat parametry. Ovšem chci nad tím mít kontrolu.

Sleduju, že tohle je spíše něco jako runinit.

Existuje nějaký nástroj, který jednoduše přes nějaké api spouští definované procesy, hlídá jejich stav a výstup a není to nutně distribuovaný jobserver?

Komentáře

  • vvondra : jak dlouho ty procesy běží? není jednodušší z nich udělat workery, které berou vstup z nějaké fronty (nebo i API) a výsledek posílají na nějakou jinou? 30.11.2015
  • dzejkob : To právě není jednodušší. Běží tak dlouho, než splní úlohu - tj sekundy až minuty. Jasně, je to prasárna, ale potřebuju prostě rychlý řešení a dát nějaký nástroj adminům, aby nekřičeli, že neví co tam běží. Dělat frontu klidně - ale zas tak to frekventovaný není - to už rovnou můžu volat nějaký syscall z programovacího jazyka - protože něco, co obsluhuje tu frontu, musí nějaký syscall ve výsledku volat. 30.11.2015
  • dzejkob : V podstatě kdyby supervisor měl nějaké startProcessWithArgs("neco", "data.dat"), což by třeba přechroustalo do finálních argumentů přes python a bylo by to někde, aby se na to admin mohl podívat + tam bylo něco jako max_process_instances, tak mám to co potřebuju. 30.11.2015
  • vvondra : Co se stane pokud už běží x procesů? Voláš nějaký skriptovací jazyk který bude čekat se skončením než bude moct spustit ten proces? Proces se někde zafrontuje se vstupními argumenty (kdo potom počká na odpověď)? Z jakého jazyka/platformy bys to nejraději spouštěl? 1.12.2015
odkaz
4 tomas_3
odpověděl/-a 30.11.2015

Tiez som to pouzival, ale potom som prisiel na to ze v ubuntu je priamo upstart. Ten dovoluje mat parametricke sluzby, vie ich sledovat, restartovat atd. A hlavne to zapada do celeho prostredia.

Keby som vsak mal ist teraz do niecoho tak skusim systemd. Systemd postupne nahradzuje upstart na vsetkych platformach tiez je parametrizovatelny a dokaze sledovat a restartovat sluzby. Zaroven ma este zopar zaujimavych featur, ktore nikde inde nie su. Napr vie manazovat sockety pre program, takze program je mozne restartovat bez straty pripojenia...

http://www.freedesktop.org/wiki/Software/systemd/
http://superuser.com/questions/728951/systemd-giving-my-service-multiple...

Komentáře

  • dzejkob : Díky, sleduju, že upstart je i na debianu. Mají tam i "task job" což je to, co potřebuju. Jenom jsem úplně přesně nenašel, zda se tomu dá vecpat vstup (ale asi jo, když dávají příklad se smazáním souboru). Co je horší, tak moc nevím, jak s tím komunikovat. Našel jsem jedině tohle: http://upstart.ubuntu.com/wiki/DBusInterface což je nějaký ipc, který asi nikam nevtěsnám 30.11.2015
  • dzejkob : Aha - nějak jsem nedočetl. Akorát systemd má api někde tamtéž. 30.11.2015

Pro plný přístup na Devel.cz se prosím přihlaste:

Rychlé přihlášení přes sociální sítě:

Nebo se přihlaste jménem a heslem:

Zadejte prosím svou e-mailovou adresu.
Zadejte své heslo.