Fórum Ubuntu CZ/SK

Ubuntu pro osobní počítače => Software => Příkazový řádek a programování pro GNU/Linux => Téma založeno: hajiborojobo 20 Března 2017, 14:05:26

Název: znovuspuštění scriptu, pokud není aktivní
Přispěvatel: hajiborojobo 20 Března 2017, 14:05:26
Čauky, poprosím o radu, mám jednoduchý sh script(nazývejme A), občas nechám script killnout a potřeboval bych,aby jiný script (B) kontroloval,zda úloha A jede,pokud ne,aby úlohu A znovu spustil. Jedná se o jednoduchý feh s prezentací.(script B neboli kontrolovač úlohy A) bych hodil do crontabu s 10min intervalem,ale to zž je jedno,existuje něco takového jednoduchého? Dík za tip  ;)
Název: Re:znovuspuštění scriptu, pokud není aktivní
Přispěvatel: TIBOR 20 Března 2017, 14:31:48
Potrebujes aby sa ti ten skript spustil okamzite po zabiti toho skriptu A?Ja som tu riesil nieco podobne len s tym ze spustam skript dajme tomu podla teba A. Ja kontrolujem ci skript A bezi a ak ano tak ho zabije (killne) a hned ho znovu spusti.
Kód: [Vybrat]
#!/bin/bash

                   #nacita PID spustenych procesov s nazvom gamma0.75
                   #grep prepusti cisla PID procesu ktore su ine ako prave spustany a killne ich

pgrep "gamma0.75" | grep -v $$ | xargs kill -9

#tu zadas ten tvoj skript
Cize pri znovuspusteni skriptu sa beziaci zabije a spusti sa novy. "gamma0.75" nahrad nazvom tvojho skriptu.
Alebo inak napisane ten riadok iba doplnis na zaciatok tvojho skriptu.
Název: Re:znovuspuštění scriptu, pokud není aktivní
Přispěvatel: hajiborojobo 21 Března 2017, 07:40:26
děkuji,funguje parádně, jednoduchá a perfektní odpověď ;)
Název: Re:znovuspuštění scriptu, pokud není aktivní
Přispěvatel: hajiborojobo 21 Března 2017, 12:20:17
tak změna,pokud to spuštím jako spustitelný soubor,tak to jede parádně, přes crontab to jen jednou kilne a už nespustí,bude potřeba to editovat pro crontab použití?
Název: Re:znovuspuštění scriptu, pokud není aktivní
Přispěvatel: TIBOR 21 Března 2017, 12:43:07
S cron/crontab som este nerobil a neviem ake su tam podmienky, ale nasiel som dajake obmedzenia ktore tam su. Na konci clanku
https://www.pantz.org/software/cron/croninfo.html
Pripadne popis ako to mas nastavene. Spustas priamo ten skript alebo pustas skript ktori spusti ten tvoj skript.
Mozno to pomoze niekomu kto vie s crontab a poradi.
Název: Re:znovuspuštění scriptu, pokud není aktivní
Přispěvatel: GdH 21 Března 2017, 12:54:55
tak změna,pokud to spuštím jako spustitelný soubor,tak to jede parádně, přes crontab to jen jednou kilne a už nespustí,bude potřeba to editovat pro crontab použití?

Pokud pouštíš grafickou aplikaci, musíš nastavit systémovou proměnnou $DISPLAY, ta v shellu, který spouští cron, nastavena není. V terminálu si zjisti hodnotu:
Kód: [Vybrat]
echo $DISPLAYa tu pak nastav v cronu, případně ve skriptu, ze kterého aplikaci spouštíš:
Kód: [Vybrat]
env DISPLAY=:0 /cesta/k/aplikaci
Název: Re:znovuspuštění scriptu, pokud není aktivní
Přispěvatel: hajiborojobo 21 Března 2017, 14:07:19
používám jednoduchou  prezentaci pomocí feh

Kód: [Vybrat]
#!/bin/bash
             
pgrep "feh" | grep -v $$ | xargs kill -9

feh --quiet --reload 3 --recursive --slideshow-delay 10 --fullscreen '/cesta k fotkam/'

v crontabu mám nastaveno čas a /cesta ke skriptu feh.sh


edit: env display funguje dobře,vložil jsem to přímo do skriptu.

Děkuji všem za skvělé rady ;)