Prosíme přihlašte se nebo zaregistrujte.

Přihlašte se svým uživatelským jménem a heslem.
World of Warcraft

Novinky: Školení nejen k OS Ubuntu pro širokou veřejnost, více informací zde.

Autor Téma: znovuspuštění scriptu, pokud není aktivní  (Přečteno 165 krát)

hajiborojobo

  • Návštěvník
  • *
  • Příspěvků: 28
  • Karma: +0/-1
    • Zobrazit profil
znovuspuštění scriptu, pokud není aktivní
« kdy: 20 Březen 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  ;)

TIBOR

  • Guru
  • *****
  • Příspěvků: 5641
  • Karma: +419/-20
  • Som uzivatel linuxovej distribucie, som linuxak?
    • Zobrazit profil
Re:znovuspuštění scriptu, pokud není aktivní
« Odpověď #1 kdy: 20 Březen 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.
« Poslední změna: 20 Březen 2017, 14:36:14 od TIBOR »
Asus X751LB-TY014H Ubuntu 16.04 XX 64bit - Mate.
Linus, Lajnas, Línus, Luínus, Lajnus a je mi naozaj jedno, ako ľudia vyslovujú moje meno. Ale "Linux" je vždy "Linux". LINUS TORVALDS, tvorca Linuxového jadra.(V dokumente Revolution OS)

hajiborojobo

  • Návštěvník
  • *
  • Příspěvků: 28
  • Karma: +0/-1
    • Zobrazit profil
Re:znovuspuštění scriptu, pokud není aktivní
« Odpověď #2 kdy: 21 Březen 2017, 07:40:26 »
děkuji,funguje parádně, jednoduchá a perfektní odpověď ;)
« Poslední změna: 21 Březen 2017, 12:18:57 od hajiborojobo »

hajiborojobo

  • Návštěvník
  • *
  • Příspěvků: 28
  • Karma: +0/-1
    • Zobrazit profil
Re:znovuspuštění scriptu, pokud není aktivní
« Odpověď #3 kdy: 21 Březen 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í?

TIBOR

  • Guru
  • *****
  • Příspěvků: 5641
  • Karma: +419/-20
  • Som uzivatel linuxovej distribucie, som linuxak?
    • Zobrazit profil
Re:znovuspuštění scriptu, pokud není aktivní
« Odpověď #4 kdy: 21 Březen 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.
Asus X751LB-TY014H Ubuntu 16.04 XX 64bit - Mate.
Linus, Lajnas, Línus, Luínus, Lajnus a je mi naozaj jedno, ako ľudia vyslovujú moje meno. Ale "Linux" je vždy "Linux". LINUS TORVALDS, tvorca Linuxového jadra.(V dokumente Revolution OS)

GdH

  • Moderátor
  • Závislák
  • *****
  • Příspěvků: 2972
  • Karma: +480/-17
    • Zobrazit profil
    • GdH-Notes
Re:znovuspuštění scriptu, pokud není aktivní
« Odpověď #5 kdy: 21 Březen 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

hajiborojobo

  • Návštěvník
  • *
  • Příspěvků: 28
  • Karma: +0/-1
    • Zobrazit profil
Re:znovuspuštění scriptu, pokud není aktivní
« Odpověď #6 kdy: 21 Březen 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 ;)
« Poslední změna: 21 Březen 2017, 14:14:36 od hajiborojobo »