Gå til innhold

cron: bash script


Anbefalte innlegg

Jeg har laget et lite program som ligger å overvåker saker og ting som skjer på en privat server. Denne fungerer i utgangs punktet bra, men en sjelden gang (etter å ha vært oppe i noen uker) dør den på uforstårlig vis.

Som en dårlig løsning på problemet kunne jeg tenkt meg et script som kjøres en gang i timen (cron jobb) som sjekker om overvåkningsprogrammet kjører, og hvis det ikke kjører blir det startet.

 

Noen som vet hvordan man lager et slikt script?

Jeg tipper man må på et vis fange opp PID når programmet starter, lagre denne i en fil. (hvordan?)

Deretter må scriptet sjekke om et program med denne PID kjører (hvordan?), evt starte programmet, og avslutte seg selv.

 

(Jeg er ganske grønn på bash script)

Lenke til kommentar
Videoannonse
Annonse

du kan faktisk bare bruke pidof til å starte den dersom den ikke kjører også

 

if ! pidof <prog>; then
    <kommando for å starte prog>
fi

 

det den gjør er å starte programmet dersom den ikke (!) finner noe program som heter det...

Endret av xeon
Lenke til kommentar
Som en dårlig løsning på problemet kunne jeg tenkt meg et script som kjøres en gang i timen (cron jobb) som sjekker om overvåkningsprogrammet kjører, og hvis det ikke kjører blir det startet.

Jeg har en annen veldig enkel løsning på problemet så du slipper å bruke cron. Du kan lage et lite wrapper-script som starter selve programmet.

 

F.eks noe ala:

 

#!/bin/sh

while ((1)); do
   ./ustabilt-program_v0.01
done

 

Så vil altså programmet bli startet på nytt hver gang det kræsjer :)

Lenke til kommentar
#!/bin/sh

while ((1)); do
   ./ustabilt-program_v0.01
done

 

Så vil altså programmet bli startet på nytt hver gang det kræsjer :)

Kanskje ikke så dum ide. Må vel legge inn en pidof sjekk, slik Xeon og AMDfan foreslår, i while løkka for å hindre å få mange kopier av samme prosess?

 

 

takker

 

-pg

Lenke til kommentar

La

sh /path/to/script/my-script.sh &

 

i rc.local, slik at det skal kjøre når maskina starter, og det funker.

Problemet nå er bare at jeg ikke liker at dette skal kjøre som root. Det er et admin program, men jeg stoler ikke så mye på egene programerings ferdigheter at jeg tør å gi det root tilgang.

Hvordan får jeg kjørt det som en annen bruker?

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...