-
Alguien que me eche un cable con PHP y procesos en LINUX: enviar SIGINT
Hola chicos:
A ver quién me puede echar un cable con lo siguiente. Veréis, los que habéis seguido otros posts míos, sabréis que ando enfrascado en algo que empezó quedándome enorme, pero que poco a poco voy controlando. Mis últimos devaneos anduvieron por el tema de lanzar procesos en consola desde CGI, y después desde PHP, pero he descubierto que PHP es la releche, así que estoy intentando prescindir lo máximo que puedo de C.
Ya no puedo prescindir más, las librerías que necesito sólo están en C, así que ahora me encuentro ante el problema:
Quiero enviar una señal SIGINT a un proceso programado en C, que yo mismo he lanzado desde un script PHP, para poder matarlo. Lo intento con proc_open que me abre también unas tuberías (o ficheros, lo que yo le diga) como entradas-salidas estándar, de tal manera, que puedo enviarle cosillas por ahí. El caso es que no sé cómo enviarle el Ctrl+C, lo intento con:
Código:
fwrite($pipes[0], '^C');
pero me da la sensación de que no debe ser así, porque pasa de mi...
Mil gracias de antemano.
Con permiso de
xzakox:
-
-
si abres el fichero devolverá un valor, creo que si se ejecuta dará otro valor haz un bucle para que se cierre, aunque no he entendido muy bien lo que pides.
-
-
Si tienes el PID del proceso puedes usar la función posix_kill. En contra de lo que sugiere su nombre, sirve para enviar todo tipo de señales a procesos
Saludos, Alex
-
-
Si tienes el PID del proceso, no tienes más que hacer `kill -2 PID`(las comillas invertidas ejecutan un comando de consola desde PHP)
-
-
Bien, gracias chicos, le echo una prueba y os comento.
< - >
Bueno, ando con otro problemilla previo a probar lo que me habéis comentado: mirad, quiero cargar un script php que a su vez me ponga algún botoncito en una web y tal, y que sea el que me lance un proceso. El tema está en que con proc_open se queda esperando a que este proceso termine (o no, vaya, a que le pase proc_close, que no para el proceso, pero sí hace que el php se desentienda, cosa que tampoco me mola mucho, pero bueno). El caso es que proc_open abre unas tuberías como ya he comentado, y me gustaría poder tener unos botoncitos que a su vez manden comandos por la entrada estándar (que en este caso, es una tubería que existe mientras no le plante un proc_close). Osea, quisiera saber si es posible que el php no se quede esperando a que termine el proceso y además poder enviarle comandos por la tubería que hace las veces de entrada estándar del proceso lanzado.
Un saludo
Última edición por 3L_S4N70; 07/05/2010 a las 12:52
Razón: Edición automática anti doble-post.
Con permiso de
xzakox:
-
Permisos de publicación
- No puedes crear nuevos temas
- No puedes responder temas
- No puedes subir archivos adjuntos
- No puedes editar tus mensajes
-
Reglas del foro
Marcadores