Portaal Portaal Pingviini veeb foorumi pealeht
  Viki  |  IRC  |  Otsing  |  Küsimused ja vastused  |  Profiil  |  Privaatsõnumite vaatamiseks logi sisse  | Logi sisse või Registreeru
<empty>
Vaata järgmist teemat
Vaata eelmist teemat

Postita uus teemaVasta teemale
Autor Sõnum
spott
Admin
Admin


Vanus: 43
Liitunud: 04.06.2005
Postitused: 8853

Distributsioon: Ubuntu
estonia.gif
postituspostitatud: 05.03.2014, 15:41  postituse pealkiri:  Skript protsessi staatuse kontrolliks ja vajadusel käivitus  

Niih - oskab keegi soovitada mõnda head lahendust või koodi, mida croniga käima lükata, mis kontrolliks ühe protsessi staatust ja kui protsess on peatunud, siis käivitaks selle uuesti. Midagi, mida võiks croni-ga tööle lasta. Lihtsalt teenusele järjest restarte teha ei taha, kuid kui asi on tõesti seisma jäänud, siis teeks automaatselt teenusele taaskäivituse.

_________________
Tellige endale sünnipäevaks, sõbrapäevaks või muuks tähtpäevaks kingitus: Kingitused internetist - NetiKink.eu

imre
Vana Pingviin
Vana Pingviin



Liitunud: 16.08.2005
Postitused: 2648
Asukoht: Saku kant
Distributsioon: Ubuntu
estonia.gif
postituspostitatud: 05.03.2014, 18:07  postituse pealkiri:  (teema puudub)  

Kood:
#!/bin/bash
teenus=nimi siia

if (( $(ps -ef | grep -v grep | grep $teenus | wc -l) > 0 ))
then
echo "$teenus töötab!"
else
/etc/init.d/$teenus start
fi

_________________
Enne teema püstitamist kasutage OTSINGUT
Küsi targalt: Infot siit!
Kui aru ei saa, siis küsi.

spott
Admin
Admin


Vanus: 43
Liitunud: 04.06.2005
Postitused: 8853

Distributsioon: Ubuntu
estonia.gif
postituspostitatud: 05.03.2014, 19:50  postituse pealkiri:  (teema puudub)  

Peaaegu töötab. Midagi on IF funktsiooniga nagu näha viga, sest ta teatab mulle kogu aeg, et teenus töötab:
Panin teenuse seisma ja kontrollisin, et tõesti seisab:
root@erp:~# ps -ef | grep -v grep | grep openerp | wc -l
0
käivitasin skripti:
root@erp:~# ./openerptest.sh
openerp töötab!
kuid tegelikult teenus tööle ei läinud ja käivitasin selle käsitsi
root@erp:~# /etc/init.d/openerp start
Starting openerp-server: openerp-server.
Nüüd kontrollisin veel üle, et mis staatuse ta nüüd annab.
root@erp:~# ps -ef | grep -v grep | grep openerp | wc -l
4
root@erp:~#

EDIT: oma ajuga muutsin skripti ja panin lõppu = 0 ja nüüd tuleb järgmine veateade, kuid vähemalt käivitab Wink kuid seda kogu aeg - isegi kui teenus juba töötab:
root@erp:~# ./openerptest.sh
./openerptest.sh: line 4: ((: 2 = 0 : attempted assignment to non-variable (error token is "= 0 ")
Starting openerp-server: openerp-server.
root@erp:~# ps -ef | grep -v grep | grep openerp | wc -l
1
root@erp:~# ./openerptest.sh
./openerptest.sh: line 4: ((: 5 = 0 : attempted assignment to non-variable (error token is "= 0 ")
Starting openerp-server: openerp-server.
root@erp:~#

EDIT2: minuviga - oleks pidanud panema == sinna > asemele. Kuid ikka ta ei saa õigest staatusest aru.

_________________
Tellige endale sünnipäevaks, sõbrapäevaks või muuks tähtpäevaks kingitus: Kingitused internetist - NetiKink.eu

mihkel
Vana Pingviin
Vana Pingviin



Liitunud: 16.04.2006
Postitused: 1284

Distributsioon: Fedora/Centos
estonia.gif
postituspostitatud: 05.03.2014, 20:29  postituse pealkiri:  (teema puudub)  

Võid ka valmis lahendusi vaadata. Ise kasutan monitit
http://mmonit.com/monit/


imre
Vana Pingviin
Vana Pingviin



Liitunud: 16.08.2005
Postitused: 2648
Asukoht: Saku kant
Distributsioon: Ubuntu
estonia.gif
postituspostitatud: 05.03.2014, 20:53  postituse pealkiri:  (teema puudub)  

Kood:
imre@fusi:~$ ps aux | grep apache2
imre     22764  0.0  0.0  13752   976 pts/1    S+   19:52   0:00 grep --color=auto apache2
imre@fusi:~$ sudo ./protsess
apache2 ei tööta - käivitan
 * Starting web server apache2                                                                                                                                                           
 *
imre@fusi:~$

Minul see töötab küll...

_________________
Enne teema püstitamist kasutage OTSINGUT
Küsi targalt: Infot siit!
Kui aru ei saa, siis küsi.

obundra
Vana Pingviin
Vana Pingviin


Vanus: 49
Liitunud: 04.08.2005
Postitused: 1213
Asukoht: 127.0.0.1
Distributsioon: RHEL, Solaris, Debian, Gentoo
estonia.gif
postituspostitatud: 05.03.2014, 23:31  postituse pealkiri:  (teema puudub)  

Spott, ära pane skripti nimesse sellesama teenuse nime, mida kontrollida tahad, ta ju protsessidest grepib seda.

_________________
IT teenused

chris
Pingviini aktivist
Pingviini aktivist



Liitunud: 16.02.2009
Postitused: 146
Asukoht: Tallinn
Distributsioon: Debian 6.0/7.0
estonia.gif
postituspostitatud: 05.03.2014, 23:48  postituse pealkiri:  (teema puudub)  

imre kirjutas:
Kood:
#!/bin/bash
teenus=nimi siia

if (( $(ps -ef | grep -v grep | grep $teenus | wc -l) > 0 ))
then
echo "$teenus töötab!"
else
/etc/init.d/$teenus start
fi


Programm pgrep võimaldab asja natuke lühemalt kirja panna:
Kood:
#!/bin/bash
teenus=protsessi nimi siia

if pgrep "$teenus" > /dev/null; then
    echo "$teenus töötab!"
else
    "/etc/init.d/$teenus" start
    # Tulevikus peab vist kirjutama nii:
    #servicectl "$teenus" start
fi


Pgrep tahab parameetriks protsessi nime ja väljastab kõigi selle nimega protsesside ID-d. Pgrep tagastab nulli, kui protsess(e) leiti ja 1 siis, kui ei leitud.


spott
Admin
Admin


Vanus: 43
Liitunud: 04.06.2005
Postitused: 8853

Distributsioon: Ubuntu
estonia.gif
postituspostitatud: 06.03.2014, 07:40  postituse pealkiri:  (teema puudub)  

obundra kirjutas:
Spott, ära pane skripti nimesse sellesama teenuse nime, mida kontrollida tahad, ta ju protsessidest grepib seda.

Embarassed - nii labane viga oligi Smile

_________________
Tellige endale sünnipäevaks, sõbrapäevaks või muuks tähtpäevaks kingitus: Kingitused internetist - NetiKink.eu

Näita (aja järgi):      
Postita uus teemaVasta teemale


Vaata järgmist teemat
Vaata eelmist teemat
Powered by phpBB2 Plus based on phpBB © 2001/7 phpBB Group