[PHP] check if program is running + kernel 2.6

Pagina: 1
Acties:
  • 125 views sinds 30-01-2008
  • Reageer

Onderwerpen


Acties:
  • 0 Henk 'm!

  • GieltjE
  • Registratie: December 2003
  • Laatst online: 19-09 16:51

GieltjE

Niks te zien...

Topicstarter
Ik had een php script dat checkte of een bepaald programma checkt of het draait (ik kon een programma naam ingeven en daar zocht hij naar), daarna zij hij up of down, sinds de upgrade naar kernel 2.6.3 werkt dit niet meer.
Weet iemand zo'n script dat met kernel 2.6.3 werkt?

Hell / 0


Acties:
  • 0 Henk 'm!

  • Spider.007
  • Registratie: December 2000
  • Niet online

Spider.007

* Tetragrammaton

Kun je niet gewoon een system commando doen in de trend van
PHP:
1
 echo exec('ps -e|awk \'{print $4}\'|grep \'^oracle$\'|wc -l');
:?

[ Voor 31% gewijzigd door Spider.007 op 05-03-2004 11:05 . Reden: quotes escaped ]

---
Prozium - The great nepenthe. Opiate of our masses. Glue of our great society. Salve and salvation, it has delivered us from pathos, from sorrow, the deepest chasms of melancholy and hate


Acties:
  • 0 Henk 'm!

  • moto-moi
  • Registratie: Juli 2001
  • Laatst online: 09-06-2011

moto-moi

Ja, ik haat jou ook :w

Het zou wel grappig zijn als je je oude scriptje liet zien, en dan aanwees waar het precies fout ging lijkt me ? ;)

God, root, what is difference? | Talga Vassternich | IBM zuigt


Acties:
  • 0 Henk 'm!

  • GieltjE
  • Registratie: December 2003
  • Laatst online: 19-09 16:51

GieltjE

Niks te zien...

Topicstarter
<?
echo exec('ps -e|awk \'{print $4}\'|grep \'^oracle$\'|wc -l');
?>
werkt maar geeft een 1 of een 0 als een server up of down is, hoe laat ik hem up of down zeggen?

zat vanochtend op school, hier is het scriptje;
<?php
function checkk($daemon,$name) {
$ps ="ps ax | grep $daemon | wc -l";
$origps = exec($ps);
$minone = $origps-3;
if ($minone<1) {
$dataps = "<b><font color=red>DOWN</font></b>";
}
if ($minone==1) {
$dataps = "<b><font color=blue>Up</font></b>";
}
if ($minone>1) {
$dataps = "<b><font color=blue>Up</font></b>";
}
return $dataps;
}
echo checkk("q3ded","Quake 3 dedicated server");
?>

Ik weet niet waar het misgaat maar hij geeft alleen down weer.

[ Voor 78% gewijzigd door GieltjE op 05-03-2004 12:42 ]

Hell / 0


Acties:
  • 0 Henk 'm!

  • moto-moi
  • Registratie: Juli 2001
  • Laatst online: 09-06-2011

moto-moi

Ja, ik haat jou ook :w

Dat lijkt me vrij logisch eigenlijk ?
code:
1
2
3
4
5
6
hylke@kahlan:~$ ps ax | grep inet
  662 ?        S      0:00 /usr/sbin/inetd
 2497 pts/0    R      0:00 grep inet
hylke@kahlan:~$ ps ax | grep inet | wc -l
2
hylke@kahlan:~$

oftewel, in origps komt 2 te staan, een grep, en de daemon zelf.
Daarna trek je er 3 vanaf -> $minone = -1
En dan ga je kijken of hij lager is dan -1, mjah.. dan krijg je down :P

Het lijkt mij logischer om een mooie regexp op de uitvoer van ps ax uit te voeren, waardoor je de 'grep regel' weg kunt gooien.

Daarna hou je dus het aantal daemon-instanties over. let wel, apache spawned uit zichzelf al 5 keer ;)

Om je scriptje tijdelijk te fix0ren kun je dus die $minone = $origps-1 doen i.p.v. de 3 ;)

God, root, what is difference? | Talga Vassternich | IBM zuigt


Acties:
  • 0 Henk 'm!

  • Rataplan
  • Registratie: Oktober 2001
  • Niet online

Rataplan

per aspera ad astra

Meestal (==als ik geen zin heb in regexp) pipe ik uitvoer even langs
code:
1
grep -v grep
, dan heb je ook geen last meer van die extra grepregel :)


Journalism is printing what someone else does not want printed; everything else is public relations.


Acties:
  • 0 Henk 'm!

  • Spider.007
  • Registratie: December 2000
  • Niet online

Spider.007

* Tetragrammaton

GieltjE schreef op 05 maart 2004 @ 12:27:
<?
echo exec('ps -e|awk \'{print $4}\'|grep \'^oracle$\'|wc -l');
?>
werkt maar geeft een 1 of een 0 als een server up of down is, hoe laat ik hem up of down zeggen?

zat vanochtend op school, hier is het scriptje;
<?php
function checkk($daemon,$name) {
$ps ="ps ax | grep $daemon | wc -l";
$origps = exec($ps);
$minone = $origps-3;
if ($minone<1) {
$dataps = "<b><font color=red>DOWN</font></b>";
}
if ($minone==1) {
$dataps = "<b><font color=blue>Up</font></b>";
}
if ($minone>1) {
$dataps = "<b><font color=blue>Up</font></b>";
}
return $dataps;
}
echo checkk("q3ded","Quake 3 dedicated server");
?>

Ik weet niet waar het misgaat maar hij geeft alleen down weer.
Hmm... tijd voor een cursus PHP :?
PHP:
1
2
3
4
5
6
7
8
9
10
11
<?php
function checkk($daemon,$name) {
    $numberOfProcesses = trim(exec("ps -e|awk '{print $4}'|grep '^oracle$'|wc -l"));
    $numberOfProcesses -= 1;

    if ($numberOfProcesses <= 1) $text = 'red;">DOWN';
    else $text = 'blue;">Up</font>';

    return '<font style="font-weight:bold; color:'.$text.'</font>';
}
?>

[ Voor 94% gewijzigd door Spider.007 op 05-03-2004 13:47 . Reden: ff style bijgezet :) ]

---
Prozium - The great nepenthe. Opiate of our masses. Glue of our great society. Salve and salvation, it has delivered us from pathos, from sorrow, the deepest chasms of melancholy and hate


Acties:
  • 0 Henk 'm!

  • GieltjE
  • Registratie: December 2003
  • Laatst online: 19-09 16:51

GieltjE

Niks te zien...

Topicstarter
De aanpassing van moto-moi werkt, alleen gaan de processen daarna ad-randum aan en uit volgens de scripts:S
<?php
function checkk($daemon,$name) {
$numberOfProcesses = trim(exec("ps -e|awk '{print $4}'|grep '^oracle$'|wc -l"));
$numberOfProcesses -= 1;

if ($numberOfProcesses <= 1) $text = 'red;">DOWN';
else $text = 'blue;">Up</font>';

return '<font style="font-weight:bold; color:'.$text.'</font>';
}
?>
geeft helemaal niks weer:S

[ Voor 25% gewijzigd door GieltjE op 05-03-2004 19:28 ]

Hell / 0


Acties:
  • 0 Henk 'm!

  • Spider.007
  • Registratie: December 2000
  • Niet online

Spider.007

* Tetragrammaton

doh... er staat nog steeds oracle als zoekstring |:(

PHP:
1
2
3
4
5
6
7
8
9
10
11
function checkk($daemon,$name) {
    $numberOfProcesses = trim(exec("ps -e|awk '{print $4}'|grep '^".$daemon."$'|wc -l"));
    $numberOfProcesses -= 1;

    if ($numberOfProcesses <= 1) $text = 'red;">DOWN';
    else $text = 'blue;">Up</font>';

    return '<font style="font-weight:bold; color:'.$text.'</font>';
}

echo checkk("q3ded","Quake 3 dedicated server");


Zoals ik al zei.. tijd voor een cursus PHP :?

[ Voor 39% gewijzigd door Spider.007 op 05-03-2004 19:57 ]

---
Prozium - The great nepenthe. Opiate of our masses. Glue of our great society. Salve and salvation, it has delivered us from pathos, from sorrow, the deepest chasms of melancholy and hate


Acties:
  • 0 Henk 'm!

  • GieltjE
  • Registratie: December 2003
  • Laatst online: 19-09 16:51

GieltjE

Niks te zien...

Topicstarter
zo ver ben ik ook nog wel, alleen ook als ik die verander komt er niks, heb opzich redelijk wat ervaring met php alleen niet met php Linux commandos, dit script is voor me Linux server voor lan party's zodat mensen kunnen zien of een server draait of niet.

Hell / 0


Acties:
  • 0 Henk 'm!

  • moto-moi
  • Registratie: Juli 2001
  • Laatst online: 09-06-2011

moto-moi

Ja, ik haat jou ook :w

Als je de uitvoer van het programma niet begrijpt kun je het beste het commando een 2e keer draaien met een >> erin naar een file ofzo, zodat je kunt controlleren of het werkt, maar dat is echt basis debugwerk hoor :o

God, root, what is difference? | Talga Vassternich | IBM zuigt


Acties:
  • 0 Henk 'm!

  • GieltjE
  • Registratie: December 2003
  • Laatst online: 19-09 16:51

GieltjE

Niks te zien...

Topicstarter
met dit laatste script lijken servers niet meer ad randum aan of uit, maar hij detecteert niks:S dus hij is altijd uit (hij geeft wel down weer).

Hell / 0

Pagina: 1