domingo, 7 de marzo de 2010

Gestor de Procesos

Hola internautas tenía algún tiempo que no pasaba por aquí ocupado con la facultad ya saben xDDD. Bueno la visita de hoy es reiterar o dar a entender a los usuarios que empienzan en éste mundo de la programación que, se puede hacer con el poder de la librería (Signal.h) y poder de C junto con algunas cositas más. Es el código para no iniciados es para internautas con conocimientos sobre el tema de procesos y gestión de éstos. El software lo que hace en sí es darte un menud para seleccionar la opción entre las que estan. Matar proceso, Ver procesos activos y continuar con la ejecución del programa donde nos da valores de como ha terminado nuestro programa(Número de retorno).

===================================================================
#include (stdio.h)
#include (stdlib.h)
#include (signal.h)
#include (wait.h)


myfuncion()
{
int proceso00, valor;
printf("ID de Proceso aquí--->\n");
scanf("%d", &proceso00);
if(kill(proceso00, SIGUSR2)!=0)
{
printf("El proceso no existe(Not Found!!)\n");
myseleccion();
}
else
{
printf("Proceso matado con éxito\nPresione 9 para regresar al menud\n");
}

}

myfuncionuno()
{
printf("Los procesos activos son:\n");
system("ps -u");
myseleccion();
}

myseleccion()
{
int opcion;
printf("Presione 1 para matar proceso\nPresione 2 para Ver los procesos activos\nPresione 3 para seguir con el programa\n");
scanf("%i", &opcion);
switch(opcion)
{
case 3:
seguir();
break;
case 1:
myfuncion();
break;
case 2:
myfuncionuno();
break;
default:
printf("No existe ésta opción\n");
}

return main();
}
seguir()
{
pid_t proceso;
proceso = fork();
if(proceso==-1)
{
printf("El proceso no existe\n");
}

if(WIFEXITED(proceso)!=0)
{
printf("El proceso creado es: --- [%d]\n", WEXITSTATUS(proceso));
wait(&proceso);
}
printf("Se limpiará la pantalla en 5 segundos y saldrá de la ejecución\n");
sleep(5);
exit(-1);
}

main()
{
int opcion4;
printf("Bienvenido al gestor de procesos\nPresione 8 para empezar\n");
scanf("%d", &opcion4);
if(opcion4==8)
{
myseleccion();
}
}
===================================================================

Aquí les dejo el link de descarga directa para quienes quieren probar.

http://rs977.rapidshare.com/files/360367656/Kill_Proccesing_GNU_by_F1r3544.tar.gz

Compilado en Linux Debian x64 AMD. GCC (gcc) v 4.1