Portál AbcLinuxu, 12. května 2025 05:56
5 3 * * * /script/aplikacia.sh restart
*/3 * * * * /script/aplikacia_check.sh
Řešení dotazu:
Udělal bych to kontrolou, třeba v tom checku... Grepneš ps a jestli se ta aplikace zrovna restartuje tak to nachvilku uspat...
Omlouvám se, ale obávám se že zcela nerozumím významu slova "neparným", tak váš prosím o osvícení. Bez znalosti definice je těžké poradit :)
1-59/2
, ale nejsem si jistý, jak moc je to univerzální.
#!/bin/bash #Zabit kontrolni program [ "$(/usr/bin/pgrep -x nazev-kontrolniho-programu)" ] && kill $(pgrep -x nazev-kontrolniho-programu) #Muj restart programu..... # #Spustit kontrolni program
Ten kontrolní program se spouští periodicky cronem, takže vaše řešení nevyloučí, že ho cron za běhu skriptu spustí znovu - věty typu "ten skript zaručeně nikdy nepoběží déle než minutu" jsou totiž spolehlivou předzvěstí budoucích problémů.
Takže bych to řešil spíš vyhrazeným souborem ve /var/run
, který si skript na začátku zamkne (příkaz flock
) a když je zamčený, počká, až se uvolní. U kontroly asi bude lepší použít neblokující režim a pokud je zamčeno, kontrolu vynechat; tím se zároveň vyřeší situace, kdy se kontrola spustí znovu dřív než doběhne předchozí.
pkill
.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.