En supposant que vous avez un serveur Linux et un accès root, essayez ceci. C'est la solution la plus simple que j'ai trouvé.
Créer un nouveau répertoire pour les fichiers suivants et donner les autorisations complètes. (On peut la rendre plus sûre, plus tard.)
mkdir test
chmod -R 777 test
cd test
Mettez ceci dans un fichier appelé bgping
.
echo starting bgping
ping -c 15 www.google.com > dump.txt &
echo ending bgping
Remarque l' &
. La commande ping sera exécuté en arrière-plan pendant que le processus actuel se déplace sur la commande echo.
Il va de ping www.google.com 15 fois, ce qui prend environ 15 secondes.
Le rendre exécutable.
chmod 777 bgping
Mettez ceci dans un fichier appelé bgtest.php
.
<?php
echo "start bgtest.php\n";
exec('./bgping', $output, $result)."\n";
echo "output:".print_r($output,true)."\n";
echo "result:".print_r($result,true)."\n";
echo "end bgtest.php\n";
?>
Lorsque vous demandez bgtest.php dans votre navigateur, vous devriez obtenir la réponse suivante rapidement, sans attendre sur
15 secondes pour que la commande ping pour terminer.
start bgtest.php
output:Array
(
[0] => starting bgping
[1] => ending bgping
)
result:0
end bgtest.php
La commande ping devrait maintenant être en cours d'exécution sur le serveur. Au lieu de la commande ping, vous pouvez exécuter un script PHP:
php -n -f largejob.php > dump.txt &
Espérons que cette aide!