PHP: Kolla om vissa processer är igång.

Permalänk
Medlem

PHP: Kolla om vissa processer är igång.

Tj0!

Jag undrar om det finns nån möjlighet att med ett PHP-script kolla om en viss process är igång, under Linux/*BSD.

Processerna jag vill kolla är:
proftpd
psybnc
eggdrop

Går det, och isåfall, har du ett exempel på hur man ska göra?

Visa signatur

"Problemet med socialism är att till sist tar alla andras pengar slut" - Margaret Thatcher

Permalänk
Hedersmedlem

Tja, de där daemonerna skapar säkert PID-filer som du kan kontrollera. Jag tror inte det finns något smidigt generellt sätt att se om en process är igång. Det skulle i så fall vara att köra ps och sen greppa efter processnamnet, men det känns som ett jävla fulhack.

Permalänk
Medlem

Jag vet inte hur smart detta sättet är, men jag tror det kan funka..

För att kolla om proftpd körs:

killall -s proftpd

får du ett svar som:
kill -TERM 1686
så körs processen.. Får du:
No matching processes were found
så körs den inte..

Från manualen för killall:

-s Show only what would be done, but do not send any sig- nal.

Borde funka, finns nog bättre lösningar dock.

Visa signatur

berta, gamla berta, du är en underbar maskin...

Permalänk
Medlem

<?php $proftpd = exec("ps -aux|grep \"proftpd\""); if ($proftpd != $null){ echo "<font color=\"#00FF00\">ProFTPD </font>"; } else { echo "<font color=\"#FF0000\">ProFTPD </font>"; } ?>

Detta funkade precis som jag ville ha det.
Egentillverkat och allt.

Visa signatur

"Problemet med socialism är att till sist tar alla andras pengar slut" - Margaret Thatcher

Permalänk
Medlem

tufft! det där ska jag lätt ta en närmare kik på:)

Permalänk
Hedersmedlem

$null?
"bara" NULL / Null / null heter det ju ändå..
$null = "hej"; borde ju funka iaf.
Lär som sagt funka om du inte satt $null dock

Visa signatur

Asus B550M-Plus / Ryzen 5800X / 48 GB 3200 MHz CL14 / Asus TUF 3080 OC / WD SN850 1 TB, Kingston NV1 2 TB + HDDs / Corsair RM650x / Acer XB271HU (1440p165) / LG C1 55"
Mobil: Moto G200