jak zjistit jestli je zapnuty jiny skript
-
- Příspěvky:17
- Registrován:stř 24. črc 2019 4:45:08
- Dal poděkování: 5 poděkování
- Dostal poděkování: 1 poděkování
Ahoj,
s pythonem teprve začínám a potřeboval bych asi pomoct.
Snažím se udělat skript, který bude hlídat druhý skript.
první skript pracuje s mariadb, ale když restartuju mariadb službu, tak skript spadne.
moje vize je taková, že by druhý skript hlídal jestli běží první skript a jestli jede databaze.
v terminále se dá zjistit jestli ten skript jede "aux ps | grep program.py | grep -v grep", to ale vyplivne cely řádek ale jak docílit toho, že když mi dotaz vrátí tento řádek, tak aby mi python vyfiltroval, nebo řekl že je to v ok nebo nok?
snad je to pochopitelné
s pythonem teprve začínám a potřeboval bych asi pomoct.
Snažím se udělat skript, který bude hlídat druhý skript.
první skript pracuje s mariadb, ale když restartuju mariadb službu, tak skript spadne.
moje vize je taková, že by druhý skript hlídal jestli běží první skript a jestli jede databaze.
v terminále se dá zjistit jestli ten skript jede "aux ps | grep program.py | grep -v grep", to ale vyplivne cely řádek ale jak docílit toho, že když mi dotaz vrátí tento řádek, tak aby mi python vyfiltroval, nebo řekl že je to v ok nebo nok?
snad je to pochopitelné
- jiri.tusla
- Příspěvky:75
- Registrován:ned 08. zář 2019 15:45:09
- Dal poděkování: 8 poděkování
- Dostal poděkování: 19 poděkování
Re: jak zjistit jestli je zapnuty jiny skript
Předně bych se nejdřív zamyslel, jestli by master skript nedokázal provést zotavení po odpojení/restartu DB.
A jako druhé bych si v master skriptu udělal heartbeat server a ten hlídal watchdog skriptem.
Python multithreading umí. Jsem se teď koukal a jsou toho plné interfernety.
A jako druhé bych si v master skriptu udělal heartbeat server a ten hlídal watchdog skriptem.
Python multithreading umí. Jsem se teď koukal a jsou toho plné interfernety.
Dej člověku rybu a nebude mít hlad jeden den.
Nauč jej chytat ryby a bude celý den sedět na pramici a chlastat pivo.
Nauč jej chytat ryby a bude celý den sedět na pramici a chlastat pivo.
-
- Příspěvky:17
- Registrován:stř 24. črc 2019 4:45:08
- Dal poděkování: 5 poděkování
- Dostal poděkování: 1 poděkování
Re: jak zjistit jestli je zapnuty jiny skript
o to zotaveni jsem se snazil ale skript zjistil, ze je databaze funkcni a kdyz hned po tom probehl restart sluzby, tak to skoncilo s chybou, proto jsem chtel ten druhy skript ktery by hlidal DB + ten prvni a pokud by padl ten prvni, tak by spustil/restartoval DB a nahodil by znovu ten skriptjiri.tusla píše: ↑úte 28. led 2020 11:10:46Předně bych se nejdřív zamyslel, jestli by master skript nedokázal provést zotavení po odpojení/restartu DB.
A jako druhé bych si v master skriptu udělal heartbeat server a ten hlídal watchdog skriptem.
Python multithreading umí. Jsem se teď koukal a jsou toho plné interfernety.
- jiri.tusla
- Příspěvky:75
- Registrován:ned 08. zář 2019 15:45:09
- Dal poděkování: 8 poděkování
- Dostal poděkování: 19 poděkování
Re: jak zjistit jestli je zapnuty jiny skript
Dej člověku rybu a nebude mít hlad jeden den.
Nauč jej chytat ryby a bude celý den sedět na pramici a chlastat pivo.
Nauč jej chytat ryby a bude celý den sedět na pramici a chlastat pivo.
- PetrSmetana
- Příspěvky:313
- Registrován:pon 22. črc 2019 9:06:45
- Bydliště:Mnich
- Dal poděkování: 28 poděkování
- Dostal poděkování: 60 poděkování
- Kontaktovat uživatele:
Re: jak zjistit jestli je zapnuty jiny skript
Potom co jsem nedávno napsal svůj první skript v pythonu k tomu mám určitě spousty co říct
V jednoduchosti je krása. Celý hlavní program bych obalil cyklem a v něm bych použil blok na odchycení výjimky - https://www.w3schools.com/python/python_try_except.asp
Pokud se výjimka přihodí uspi proces na pár sekund - https://www.w3schools.com/php/func_misc_sleep.asp
A následně se zkus spojit do DB znova - což se stane díky cyklu, který bude nově celý program obalovat.
V docházce kde jsem python použil (místní sekce projekty) používám stejně watchdog v cronu, který kontroluje různé výstupy a v případě potřeby restartuje celé RPi - primárně kvůli tomu, že se mi při výjimce nepodařilo nahodit nízkoúrovňové IO - MOSI/MISO.
Jinak multithreadig je taky řešení, ale to co popisuji výše mi přijde efektivnější, ale třeba tam máš celkově jinak postavenou architekturu té apky a potřebuješ to jinak
V jednoduchosti je krása. Celý hlavní program bych obalil cyklem a v něm bych použil blok na odchycení výjimky - https://www.w3schools.com/python/python_try_except.asp
Pokud se výjimka přihodí uspi proces na pár sekund - https://www.w3schools.com/php/func_misc_sleep.asp
A následně se zkus spojit do DB znova - což se stane díky cyklu, který bude nově celý program obalovat.
V docházce kde jsem python použil (místní sekce projekty) používám stejně watchdog v cronu, který kontroluje různé výstupy a v případě potřeby restartuje celé RPi - primárně kvůli tomu, že se mi při výjimce nepodařilo nahodit nízkoúrovňové IO - MOSI/MISO.
Jinak multithreadig je taky řešení, ale to co popisuji výše mi přijde efektivnější, ale třeba tam máš celkově jinak postavenou architekturu té apky a potřebuješ to jinak
Modré z nebe na počkání, zázraky do dvou dnů.
- PetrSmetana
- Příspěvky:313
- Registrován:pon 22. črc 2019 9:06:45
- Bydliště:Mnich
- Dal poděkování: 28 poděkování
- Dostal poděkování: 60 poděkování
- Kontaktovat uživatele:
Re: jak zjistit jestli je zapnuty jiny skript
jo a napadlo mě ještě jednodušší řešení - pokud ti to spadne, tak si to prostě spusť jako službu pomocí systemd a můžeš si tam restart sám definovat
V docházce to mám nastavené takto:
/etc/systemd/system/dochazka.service - https://experimentaal.org/dochazka/dochazka.service
V docházce to mám nastavené takto:
/etc/systemd/system/dochazka.service - https://experimentaal.org/dochazka/dochazka.service
Kód: Vybrat vše
sudo systemctl enable dochazka.service
Modré z nebe na počkání, zázraky do dvou dnů.
-
- Příspěvky:17
- Registrován:stř 24. črc 2019 4:45:08
- Dal poděkování: 5 poděkování
- Dostal poděkování: 1 poděkování
Re: jak zjistit jestli je zapnuty jiny skript
Ahoj,PetrSmetana píše: ↑úte 28. led 2020 12:42:47jo a napadlo mě ještě jednodušší řešení - pokud ti to spadne, tak si to prostě spusť jako službu pomocí systemd a můžeš si tam restart sám definovat
V docházce to mám nastavené takto:
/etc/systemd/system/dochazka.service - https://experimentaal.org/dochazka/dochazka.service
Kód: Vybrat vše
sudo systemctl enable dochazka.service
Diky, toto me nenapadlo dobry napad..
jen na okraj, ta malina bude ridit stary elektrokotel, ktery v sobe nema nic co by ho ridilo, akorad dva startery, ktere zpozduji stykace ..
ted uz to tam bezi v podstate od zacatku topne sezony a kupodivu to funguje (hlida teplotu v kotli a na ukor ji to zapina/vypina spirály pri ruznych stavech (v zavislosti jestli je drahy/levny proud, jestli je zapnuty/vypnuty termostat atd.
chci to ale cele predelat
- PetrSmetana
- Příspěvky:313
- Registrován:pon 22. črc 2019 9:06:45
- Bydliště:Mnich
- Dal poděkování: 28 poděkování
- Dostal poděkování: 60 poděkování
- Kontaktovat uživatele:
Re: jak zjistit jestli je zapnuty jiny skript
Super! Kdyby ses chtěl podělit o své řešení, tak určitě zabrus do projektůYenc píše: ↑úte 28. led 2020 15:40:52Ahoj,
Diky, toto me nenapadlo dobry napad..
jen na okraj, ta malina bude ridit stary elektrokotel, ktery v sobe nema nic co by ho ridilo, akorad dva startery, ktere zpozduji stykace ..
ted uz to tam bezi v podstate od zacatku topne sezony a kupodivu to funguje (hlida teplotu v kotli a na ukor ji to zapina/vypina spirály pri ruznych stavech (v zavislosti jestli je drahy/levny proud, jestli je zapnuty/vypnuty termostat atd.
chci to ale cele predelat
viewtopic.php?f=41&t=28
Modré z nebe na počkání, zázraky do dvou dnů.
-
- Příspěvky:17
- Registrován:stř 24. črc 2019 4:45:08
- Dal poděkování: 5 poděkování
- Dostal poděkování: 1 poděkování
Re: jak zjistit jestli je zapnuty jiny skript
Petře díky za tip..
Jelikož to dělám pro zábavu a nemám toho moc času tak na tom nepracuju zrovna rychlím tempem ale:
Teď jsem vyzkoušel udělat z toho službu, v průběhu dotazu do db jsem udělal restart služby db a můj skript se znovu spustil a pokračovalo to tak jak má..
jsi bůh a jak to dodělám tak trošku popíšu jak a co to dělá..
Teď ještě pracuji na skriptu, který se bude sám učit, jestli je drahý nebo levný proud a na úkor toho bude ukončovat topení před změnou proudu (jelikož jsou v kotli 3 stykače a jsou ovládané ovládací nulou, tak to pěkně bouchne jak odpadnou všechny najednou a tomu chci zamezit )
Jelikož to dělám pro zábavu a nemám toho moc času tak na tom nepracuju zrovna rychlím tempem ale:
Teď jsem vyzkoušel udělat z toho službu, v průběhu dotazu do db jsem udělal restart služby db a můj skript se znovu spustil a pokračovalo to tak jak má..
jsi bůh a jak to dodělám tak trošku popíšu jak a co to dělá..
Teď ještě pracuji na skriptu, který se bude sám učit, jestli je drahý nebo levný proud a na úkor toho bude ukončovat topení před změnou proudu (jelikož jsou v kotli 3 stykače a jsou ovládané ovládací nulou, tak to pěkně bouchne jak odpadnou všechny najednou a tomu chci zamezit )