Está usted en Indice > Construcción > Lenguajes > PHP > Lecciones y Paso a Paso > WebTaller - Aprender PHP - Monitorizando procesos en WindowsXP y Linux
Construcción
Maletín
Utilidades
Cursos
Promoción
Rentabilidad
Zona Novatos
Foros
Acceso a tu cuenta

WebTaller - Aprender PHP - Monitorizando procesos en WindowsXP y Linux

Monitorizando procesos en WindowsXP y Linux



A veces es interesante saber si tienes un proceso activo en la maquina para generar la web de una forma u otra...
ej: Avisar a los usuarios que estás haciendo backup, o que estás conectado al irc o tienes el messanger encendido...
Esto se puede hacer en 2 sistemas (que yo sepa) y usando tuberias...
En windowsXP hay un bonito comando llamado "tasklist", en linux "ps"
Nota: Este ejemplo será orientado a windowsXP, ya que en estos momentos no dispongo de una maquina linux en la cual probar el ejemplo, de todas formas, no varia mas que el comando y sus parametros...

Paso 1 Nos curramos la tuberia: (llamando a tasklist con unos cuantos parametros extra para luego poder cogerlo desde php mas facilmente)
Miraros el manual en: Menú Inicio => Ayuda y soporte tecnico

$fp=popen("tasklist /fo CSV /nh","r");

el bucle para leer linea a linea la salida del programa

while (!feof($fp))
{
$lin=fgets($fp,255);
echo $lin."<br>";
}

Cerramos la tuberia

pclose($fp);

Si ejecutamos ese codigo, tendremos algo parecido a esto:

"System Idle Process","0","Console","0","20 KB"
"System","4","Console","0","80 KB"
"smss.exe","404","Console","0","84 KB"
"csrss.exe","460","Console","0","1.828 KB"
"winlogon.exe","484","Console","0","1.812 KB"
"services.exe","528","Console","0","1.140 KB"
....

bien, ahora queda "secuestrar" los datos para poderlos idenitificar desde php y asi ver si un proceso está activo, vamos con un ejemplo:

Supongamos que yo quiero poner en mi web si tengo o no el SETI@home activo en mi maquina:

$seti = 0;
$fp=popen("tasklist /fo CSV /nh","r");
while (!feof($fp))
{
$lin=fgets($fp,255);
// Verificador de SETI@home
if (strtok($lin,",") == ""SETI@home.exe"" ) { $seti = 1; }
}
pclose($fp);
if ( $seti == 1 ) { echo "El SETI@home está funcionando y buscando hombrecillos verdes!"; }
else { echo "No tenemos el SETI@home activo en esta maquina"; }


en linux es exactamente igual, salvo cambiando un poco el if que identifica el proceso y los parametros de PS :)

Ale! suerte! espero que os sirva!

 



Usuarios que han visto este tema también han visto...

- Interfaz de navegación por pestañas con Ajax y PHP
- Contador de visitas sin cookies
- Reemplazar Texto en la Base de Datos
- Aprende a hacer un buscador que funcione con cualquiera de tus tablas mysql
- Enviar un mail con PHP


Versión imprimible - Versión imprimible de este documento
Enviar e-mail - Enviar por e-mail este documento
Publicidad






Cursos de Community Manager

Información legal | Política de Privacidad | Contacte con nosotros

Otro proyecto de Factoría de Internet. Copyright© 2003-2011 Factoría de Internet S.L.. Todos los derechos reservados.


Página generada el 12-02-2012 a las 21:42:27