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

Přihlašte se svým uživatelským jménem a heslem.
Vaše pomoc je stále potřeba!

Autor Téma: Problém s sh skriptem  (Přečteno 2833 krát)

sehy

  • Návštěvník
  • Příspěvků: 11
Problém s sh skriptem
« kdy: 05 Srpna 2014, 12:24:55 »
Zdravím,
mám problém s sh skriptem. Snažím se napsat skript který bude kontrolovat běžící službu. Když poběží ukončí se, když bude vypnutá zapne ji. Problém se v tom že když je služba vypnutá tak ji program spustí (služba se spouští cca 45 s) tak vyhodí chybu (myslím si že je to tím že se nestihne spustit). Jak docílím toho že skript počká na to až se služba spustí a nebude pokračovat v programu (skriptu)?

Kód: [Vybrat]
#!/bin/bash
  SERVICE="core"

  PSV=$(ps aux | grep -v "grep" | grep $SERVICE | wc -l)

  if [ $PSV == "0" ];
    then

      # Vypnuta!
      echo "$SERVICE vypnuta"
      /etc/init.d/edvrserver restart
      else

      # Zapnuta
      echo "$SERVICE zapnuta"

  fi

  unset SPHINXPID
  unset SERVICE

  exit 0

« Poslední změna: 05 Srpna 2014, 17:58:01 od GdH »

Mariocz

  • Aktivní člen
  • *
  • Příspěvků: 148
Re:Problém s sh skriptem
« Odpověď #1 kdy: 05 Srpna 2014, 13:07:26 »
po spuštění pužij příkaz sleep 50. počká padesát sekund a pak pokračuje

ntz_reloaded

  • Lokaj
  • Závislák
  • ***
  • Příspěvků: 3735
  • skill :: ur home erly
Re:Problém s sh skriptem
« Odpověď #2 kdy: 05 Srpna 2014, 13:52:02 »
protoze ten skript je celej naprosto spatne ;)
tikejte mi, taky Vam tikam ...
song of the day - openSUSE, openindiana, DuckDuckGo
The noise ain't noise anymore, who's to blame, WHO'S TO BLAME ??

Cuore

  • Závislák
  • ***
  • Příspěvků: 2534
Re:Problém s sh skriptem
« Odpověď #3 kdy: 05 Srpna 2014, 16:22:55 »
takhle ne použij smyčku...

ntz_reloaded

  • Lokaj
  • Závislák
  • ***
  • Příspěvků: 3735
  • skill :: ur home erly
Re:Problém s sh skriptem
« Odpověď #4 kdy: 05 Srpna 2014, 16:33:29 »
takhle ne použij smyčku...

na co, */N * * * * /teh/script.sh v cronu je mnohem lepsi nez smycka ;) .. kdyz uz jsme u toho, tak spis at:

1) odstrani tu hruzu PSV=$(ps aux | grep -v "grep" | grep $SERVICE | wc -l)
2) at nepouziva VELKA pismena na sve promenne .. kua .. shared/systemove promenne jsou velkejma .. uz se to prosim lidi naucte a prestante tam busit ten UPPERCASE
3) At normalne cekuje pomoci /etc/init.d/foo status, jestli service bezi a nebo ne
« Poslední změna: 05 Srpna 2014, 16:35:35 od ntz_reloaded »
tikejte mi, taky Vam tikam ...
song of the day - openSUSE, openindiana, DuckDuckGo
The noise ain't noise anymore, who's to blame, WHO'S TO BLAME ??

GdH

  • Moderátor
  • Závislák
  • ***
  • Příspěvků: 3176
    • GdH-Notes
Re:Problém s sh skriptem
« Odpověď #5 kdy: 05 Srpna 2014, 17:40:10 »
Citace
ps aux | grep -v "grep" | grep $SERVICE | wc -l

Kód: [Vybrat]
if pgrep $SERVICE; then ....by bylo elegantnější a pokud by to mělo prohledávat celý příkaz, ne jen jména procesů, pak pgrep -f. To jen pro info.

Jinak ale bude rozumnější co psal ntz, případně to celé předat upstartu, či systemd, které to umí hlídat samy.

Edit: smazal jsem poznámku, která ze mě dělala vola :)
« Poslední změna: 05 Srpna 2014, 18:00:26 od GdH »

 

Provoz zaštiťuje spolek OpenAlt.