Comment exécuter un script php via la ligne de commande (et le faire fonctionner après la déconnexion)

StackOverflow https://stackoverflow.com/questions/575345

Question

Je suis en train d'exécuter un script php sur mon serveur privé virtuel à distance via la ligne de commande. Le processus je suis est:

  1. Connectez-vous au serveur en utilisant PuTTY
  2. Sur l'invite de ligne de commande, tapez> php myscript.php

Le script fonctionne très bien. Mais le problème est que le script cesse de fonctionner dès que je ferme la fenêtre de la console PuTTY.

J'ai besoin du script pour continuer à courir sans cesse. Comment puis je faire ça? Je courais Debian sur le serveur.

Merci d'avance.

Était-ce utile?

La solution

Je crois que Ben a la bonne réponse, à savoir utiliser la commande nohup. nohup signifie nohangup et signifie que votre programme devrait ignorer un signal raccrochage, généré lorsque vous êtes séance de mastic est déconnecté par vous déconnecter ou parce que vous avez expiré.

Vous devez savoir que la sortie de votre commande sera ajoutée à un fichier dans le répertoire courant nommé nohup.out (ou $ HOME / nohup.out si les autorisations vous empêchent de créer nohup.out dans le répertoire courant) . Si votre programme génère beaucoup de sortie, alors ce fichier peut être très grand, Vous pouvez également utiliser la redirection de shell pour rediriger la sortie du script à un autre fichier.

nohup php myscript.php >myscript.output 2>&1 &

Cette commande exécutera votre script et envoyer toutes les sorties (à la fois standard et l'erreur) dans le fichier myscript.output qui sera créé à nouveau chaque fois que vous exécutez le programme.

La finale et provoque le script à exécuter en arrière-plan afin que vous puissiez faire d'autres choses pendant qu'il est en cours d'exécution ou fermeture de session.

Autres conseils

Un moyen facile est de l'exécuter si nohup:

nohup php myScript.php & 

Si vous exécutez la commande php dans un screen, détachez le screen, il ne se termine pas lorsque vous fermez votre console.

  

est un multiplexeur de terminal qui vous permet de gérer de nombreux processus à travers un terminal physique. Chaque processus obtient sa propre fenêtre virtuelle, et vous pouvez rebondir entre les fenêtres virtuelles qui interagissent avec chaque processus. Les processus gérés par l'écran continuent de fonctionner lorsque leur fenêtre est pas active.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top