recherche
Maisondéveloppement back-endtutoriel phpComment faire fonctionner le script PHP en arrière-plan et terminer le processus via ENTER?

Comment faire fonctionner le script PHP en arrière-plan et terminer le processus via ENTER?

Conseils pour faire fonctionner les scripts PHP en arrière-plan et terminer gracieusement

Cet article explique comment faire fonctionner les scripts PHP en arrière-plan et fournit une méthode de terminaison plus pratique que ctrl c , c'est-à-dire terminer le processus en appuyant sur Entrée. Il convient de noter que PHP lui-même n'est pas un gestionnaire de démon, qui est différent des outils tels que Workerman. Des outils tels que Workerman ont généralement des mécanismes de gestion de fond et de gestion des processus intégrés. Pour les scripts PHP ordinaires, nous devons utiliser les commandes système et certaines compétences.

Supposons d'abord que nous ayons un script PHP appelé s.php , avec sa boucle de base comme suit:

  Php
cli_set_process_title ('queue-server');

while (true) {
    // ... votre logique commerciale ...
}

L'exécution php s.php produira directement le script au premier plan du terminal. Pour le faire s'exécuter en arrière-plan et pouvoir se terminer avec la touche Entrée, nous pouvons utiliser la méthode suivante:

Méthode 1: combinaison nohup et screen ou tmux

La commande nohup peut ignorer le signal de suspension et faire continuer à s'exécuter en arrière-plan. Mais il manque un mécanisme de terminaison pratique. screen ou tmux est un multiplexeur de terminal qui vous permet de travailler dans plusieurs sessions de terminal et peut facilement gérer les processus d'arrière-plan.

  1. Démarrez le script à l'aide screen ou tmux :

     Écran -DMS Queue-Server Nohup PHP S.PHP 2> & 1 &

    Cette ligne de commande démarrera une session screen appelée queue-server en arrière-plan et exécutera nohup php s.php 2>&1 & dedans. -dmS Les paramètres représentent le mode de séparation, le nom d'affichage et la création respectivement. 2>&1 redirige l'erreur standard vers la sortie standard.

  2. Terminer le script:

    un. Utilisez screen -r queue-server pour vous reconnecter à la session queue-server . né Appuyez sur Ctrl a dans la session, puis appuyez sur k (ou Ctrl c ) pour terminer le processus.

    La méthode d'utilisation de tmux est similaire, sauf que les commandes sont légèrement différentes, veuillez vous référer à la documentation de tmux .

Méthode 2: Utilisez l'extension pcntl de PHP (plus avancé, vous devez comprendre la gestion des processus)

L'extension pcntl de PHP fournit des fonctions de contrôle de processus, permettant à la gestion de la gestion de processus plus granulaire d'être implémentée dans les scripts PHP. Cela nécessite des connaissances en programmation plus approfondies, mais permet un contrôle plus flexible. Voici un exemple simple qui écoute l'entrée standard et termine le processus lorsque la touche Entrée est reçue:

  Php
cli_set_process_title ('queue-server');

$ stdin = fopen ('php: // stdin', 'r');

Declare (ticks = 1);
register_tick_function (function () use ($ stdin) {
    $ line = fgets ($ stdin);
    if ($ line! == false && trim ($ line) === "") {
        sortie (0);
    }
});

while (true) {
    // ... votre logique commerciale ...
    usleep (100000); // Évitez l'utilisation excessive du processeur}

Ce script écoute les entrées standard et met fin au processus lorsqu'une ligne vierge (entrée clé) est détectée. Il convient de noter que pcntl doit être activée lors de l'installation de PHP.

La méthode à choisir dépend de vos besoins et de vos compétences. Pour un fonctionnement et une terminaison simples, la méthode 1 est plus simple et plus facile à utiliser; tandis que la méthode 2 fournit un contrôle plus granulaire, mais nécessite une compréhension plus profonde. N'oubliez pas que quelle que soit la méthode, les exceptions et les erreurs des scripts doivent être correctement gérées pour garantir la stabilité et la fiabilité des scripts.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Comment créez-vous et utilisez-vous une interface dans PHP?Comment créez-vous et utilisez-vous une interface dans PHP?Apr 30, 2025 pm 03:40 PM

L'article explique comment créer, mettre en œuvre et utiliser des interfaces dans PHP, en se concentrant sur leurs avantages pour l'organisation du code et la maintenabilité.

Quelle est la différence entre crypte () et mot de passe_hash ()?Quelle est la différence entre crypte () et mot de passe_hash ()?Apr 30, 2025 pm 03:39 PM

L'article traite des différences entre crypt () et mot de passe_hash () dans PHP pour le hachage de mot de passe, en se concentrant sur leur implémentation, leur sécurité et leur aptitude aux applications Web modernes.

Comment pouvez-vous prévenir les scripts inter-sites (XSS) en PHP?Comment pouvez-vous prévenir les scripts inter-sites (XSS) en PHP?Apr 30, 2025 pm 03:38 PM

L'article discute de la prévention des scripts inter-sites (XSS) dans PHP par validation d'entrée, en codage de sortie et en utilisant des outils comme OWASP ESAPI et Purificateur HTML.

Qu'est-ce que la mise en œuvre automatique dans PHP?Qu'est-ce que la mise en œuvre automatique dans PHP?Apr 30, 2025 pm 03:37 PM

L'autofilage en PHP charge automatiquement les fichiers de classe en cas de besoin, améliorant les performances en réduisant l'utilisation de la mémoire et l'amélioration de l'organisation du code. Les meilleures pratiques incluent l'utilisation de PSR-4 et l'organisation du code efficacement.

Que sont les flux PHP?Que sont les flux PHP?Apr 30, 2025 pm 03:36 PM

PHP Streams Unify Unify Gestion de ressources telles que les fichiers, les prises de réseau et les formats de compression via une API cohérente, l'abstraction de la complexité et l'amélioration de la flexibilité et de l'efficacité du code.

Quelle est la taille maximale d'un fichier qui peut être téléchargé à l'aide de PHP?Quelle est la taille maximale d'un fichier qui peut être téléchargé à l'aide de PHP?Apr 30, 2025 pm 03:35 PM

L'article discute de la gestion des tailles de téléchargement de fichiers dans PHP, en se concentrant sur la limite par défaut de 2 Mo et comment l'augmenter en modifiant les paramètres PHP.ini.

Qu'est-ce que les types nullables en PHP?Qu'est-ce que les types nullables en PHP?Apr 30, 2025 pm 03:34 PM

L'article traite des types nullables en PHP, introduits dans PHP 7.1, permettant aux variables ou aux paramètres d'être soit un type spécifié ou nul. Il met en évidence des avantages tels que l'amélioration de la lisibilité, la sécurité des types et l'intention explicite, et explique comment déclarer

Quelle est la différence entre les fonctions unset () et unlink ()?Quelle est la différence entre les fonctions unset () et unlink ()?Apr 30, 2025 pm 03:33 PM

L'article traite des différences entre les fonctions unset () et unlink () dans la programmation, en se concentrant sur leurs objectifs et leurs cas d'utilisation. Unset () supprime les variables de la mémoire, tandis que Unlink () supprime les fichiers du système de fichiers. Les deux sont cruciaux pour l'effec

See all articles

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Navigateur d'examen sécurisé

Navigateur d'examen sécurisé

Safe Exam Browser est un environnement de navigation sécurisé permettant de passer des examens en ligne en toute sécurité. Ce logiciel transforme n'importe quel ordinateur en poste de travail sécurisé. Il contrôle l'accès à n'importe quel utilitaire et empêche les étudiants d'utiliser des ressources non autorisées.

Version crackée d'EditPlus en chinois

Version crackée d'EditPlus en chinois

Petite taille, coloration syntaxique, ne prend pas en charge la fonction d'invite de code

SublimeText3 Linux nouvelle version

SublimeText3 Linux nouvelle version

Dernière version de SublimeText3 Linux

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

PhpStorm version Mac

PhpStorm version Mac

Le dernier (2018.2.1) outil de développement intégré PHP professionnel