Ejecutar script en php y que quede activo luego de cerrar la consola

mauropek Siguiendo

Curioso
Verificación en dos pasos desactivada
Verificado por Whatsapp
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
14 Jun 2023
Mensajes
11
Buenas, consulta. Necesito ejecutar un script en php desde el cmd (estoy usando XAMPP en Windows) y quiero ejecutar ejectutar php example.php y que este continue corriendo aún cuando cierro la consola. Entiendo que debo usar algún tipo de daemon como suelo usar para nodejs, pero no logro dar con la manera de hacerlo en php. Alguien puede darme una mano?

Gracias.
 

miguelcas12

VIP
Épsilon
Programador
Verificación en dos pasos activada
Verificado por Whatsapp
¡Ha verificado su Paypal!
Verificado por Binance
Suscripción a IA
Desde
17 Ago 2017
Mensajes
831

m16u31

Zeta
Verificación en dos pasos desactivada
Verificado por Whatsapp
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
23 Sep 2018
Mensajes
1.702
creo que te refieres a un "cron". con laravel podrías hacerlo de manera fácil usando commands. Solo escribes tu lógica y lo demás Laravel ya lo tiene implementado.
 

mauropek

Curioso
Verificación en dos pasos desactivada
Verificado por Whatsapp
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
14 Jun 2023
Mensajes
11
creo que te refieres a un "cron". con laravel podrías hacerlo de manera fácil usando commands. Solo escribes tu lógica y lo demás Laravel ya lo tiene implementado.
No, no es un cron. Es un proceso en segundo plano. Debe quedar siempre activo. Como cuando se ejecuta con nohup en linux.
 

m16u31

Zeta
Verificación en dos pasos desactivada
Verificado por Whatsapp
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
23 Sep 2018
Mensajes
1.702
No, no es un cron. Es un proceso en segundo plano. Debe quedar siempre activo. Como cuando se ejecuta con nohup en linux.
Ok busca en github. hace un par de años use uno. Pero no me acuerdo el nombre... era algo como php-daemon o parecido.

El problema era que consumia recursos al ejecutarse todo el rato, seguro que necesitas algo asi? no necesitas un trigger, store procedure, job, command?
 

mauropek

Curioso
Verificación en dos pasos desactivada
Verificado por Whatsapp
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
14 Jun 2023
Mensajes
11
Ok busca en github. hace un par de años use uno. Pero no me acuerdo el nombre... era algo como php-daemon o parecido.

El problema era que consumia recursos al ejecutarse todo el rato, seguro que necesitas algo asi? no necesitas un trigger, store procedure, job, command?
Sí, es lo que necesito. De hecho en node lo hago con "demonize".
 

lembes

Beta
Verificación en dos pasos desactivada
Verificado por Whatsapp
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
2 Nov 2023
Mensajes
59
¿No es mejor un cronjob que se ejecute cada segundo?
 

webcoder

Beta
Verificación en dos pasos desactivada
Verificado por Whatsapp
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
9 Ago 2023
Mensajes
93
Podes armarte un script para que instale tu script como servicio usando las funciones que provee php: https://www.php.net/manual/es/ref.win32service.php, ahi llamas a la funcion

win32_create_service​

y te crea un servicio que queda corriendo en segundo plano, por supuesto que el script que registres como servicio tiene que estar en un loop.
 

mauropek

Curioso
Verificación en dos pasos desactivada
Verificado por Whatsapp
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
14 Jun 2023
Mensajes
11

meaburro

Zeta
Verificación en dos pasos activada
Desde
7 Nov 2010
Mensajes
1.854
También puedes usar el task scheduler de windows


Y si con php.exe no te sirve, incluso podrías llamar directamente al navegador, y luego cerrarlo llamando a un .bat con este código

Insertar CODE, HTML o PHP:
echo off
SET SLEEPDELAYMIN=1

SET /A SLEEPDELAY=60*SLEEPDELAYMIN
echo Will close Firefox after %SLEEPDELAYMIN% minutes
timeout /t %SLEEPDELAY% /nobreak

echo Killing Firefox...
taskkill /F /T /IM firefox.exe
 

mchojrin

Beta
Verificación en dos pasos desactivada
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
10 Feb 2017
Mensajes
103
¿Cómo mejoraría el problema tener el script dockerizado?
 

¡Regístrate y comienza a ganar!

Beneficios

  • Gana dinero por participar
  • Gana dinero por recomendarnos
  • Descubre ofertas de empleo diariamente
  • Negocios seguros
  • ¡Información premium y más!

Acceder

¿Ya tienes una cuenta? Accede aquí

Arriba