User Tag List

Resultados 1 al 5 de 5

Tema: Alguien que me eche un cable con PHP y procesos en LINUX: enviar SIGINT

  1. #1

    Fecha de ingreso
    May 2004
    Mensajes
    1,535
    Mencionado
    8 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    75
    Agradecer Thanks Received 
    5
    Thanked in
    Agradecido 5 veces en [ARG:2 UNDEFINED] posts

    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:

  2. #2
    Stick Fighter v2 Champion!
    Fecha de ingreso
    May 2010
    Ubicación
    Gijon
    Mensajes
    2,247
    Mencionado
    1 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    0
    Agradecer Thanks Received 
    0
    Thanked in
    Agradecido 0 veces en [ARG:2 UNDEFINED] posts
    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.

  3. #3

    Fecha de ingreso
    Mar 2005
    Mensajes
    3,145
    Mencionado
    1 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    0
    Agradecer Thanks Received 
    29
    Thanked in
    Agradecido 19 veces en [ARG:2 UNDEFINED] posts
    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

  4. #4

    Fecha de ingreso
    Mar 2007
    Ubicación
    Barna
    Mensajes
    10,357
    Mencionado
    93 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    374
    Agradecer Thanks Received 
    1,801
    Thanked in
    Agradecido 951 veces en [ARG:2 UNDEFINED] posts
    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)

  5. #5

    Fecha de ingreso
    May 2004
    Mensajes
    1,535
    Mencionado
    8 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    75
    Agradecer Thanks Received 
    5
    Thanked in
    Agradecido 5 veces en [ARG:2 UNDEFINED] posts
    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
  •