2011-09-23 4 views
14

J'ai une simple boucle infinie for qui ressemble à ceci:une boucle infinie sur un serveur distant PHP

set_time_limit (0); 
for (;;) 
{ 
    ... //Doing some stuff including to write to a file 
    sleep(300); 
} 

Il fonctionne sur mon serveur. (Compte d'hébergement partagé)

Comment diable puis-je l'arrêter?

+1

Tuer la ligne de commande du processus ferait l'affaire. En cours d'exécution sur Linux? vérifier http://linux.about.com/library/cmd/blcmdl_kill.htm –

+0

Supprimer le fichier? – Mob

Répondre

13

tuer le processus. en supposant que vous pouvez accéder à la console via ssh et votre serveur fonctionne sur linux:

ps -ef | grep php // to get a list of php-processes 

kill [process-id] // kill the process by process-id 
+0

Comment pensez-vous que je peux avoir accès via SSH? Le serveur est linux/Debian. – LouwHopley

+0

http://www.putty.org/ - il suffit de télécharger, entrez l'adresse IP du serveur, votre nom d'utilisateur et mot de passe et: voilà! – oezi

+0

@oezi J'ai aussi eu un script en boucle sur le serveur. Je parle du serveur [Amazon ec2] (http://aws.amazon.com/ec2/). Pour tuer ce script, utilisez 'ps -x' et' sudo kill [proces_id] '. Il suffit de dire ... :) –

1

Vous pouvez contacter votre service d'hébergement et leur demander de tuer votre script. Très probablement, vous n'avez pas d'accès d'exécution ou d'accès ssh. Peut-être devriez-vous créer une possibilité de quitter votre programme la prochaine fois que vous créerez une boucle infinie.

+0

Bonne idée de mettre un moyen de le tuer. Va mettre un fichier à lire. Si lit "faux" - mourir. – LouwHopley

1

Je me suis connecté via SSH et j'ai essayé de tuer le processus mais cela n'a pas semblé fonctionner - probablement le processus incorrect car il y en avait pas mal.

Vous pouvez toujours redémarrer apache en dernier recours; cela va le réparer ;-)

Questions connexes