Bonjour,
J'exécute sur le serveur web un script qui est potentiellement infini. Je voudrais l'exécuter et afficher sa sortie, en définissant un timeout (et afficher un message d'erreur au bout de 2 secondes). Pour le moment, j'ai juste cette ligne (il manque donc la gestion du timeout) :
system("echo '$msg' | ./sed -r -f cmd.sed 2>&1");
J'ai regardé du côté de set_time_limit(), mais ça ne fonctionne pas sur les appels systèmes.
J'ai voulu utiliser fork et kill dans un script php, mais la fonction pcntl_fork n'est pas définie quand j'exécute dans apache.
J'ai écrit un script shell pour faire la même chose (à base de sleep et de kill). Le script marche bien en mode console, mais j'ai l'impression que le kill échoue lorsque le script est appelé par le web. Le processus continue à tourner sur le serveur (même quand l'utilisateur appuie sur échape, de son côté).
Quelqu'un a une solution ? (sachant que je n'ai pas de droits root sur le serveur)
Merci d'avance.
[Edit] je voulais poster juste dans "Langage", et non dans syntaxe. Désolé.
Partager