


Explorer le monde mystérieux des opérations en arrière-plan sous Linux
Explorons un monde mystérieux dans le système d'exploitation Linux - en arrière-plan. Dans une utilisation quotidienne, nous devons souvent utiliser l'exécution en arrière-plan pour permettre aux tâches de s'exécuter silencieusement en arrière-plan sans affecter notre travail actuel. Alors, comment implémenter le fonctionnement en arrière-plan sous Linux ?
Penser
Tout d'abord, nous devons considérer une question : pourquoi le programme en arrière-plan se ferme-t-il lorsque vous fermez directement le terminal ? En effet, lorsque vous fermez directement le terminal, le terminal enverra un signal SIGHUP aux tâches en arrière-plan démarrées dans l'environnement actuel ? , provoquant le blocage du programme en cours. Ensuite, ignorez simplement le SIGHUP.
nonhup
La commande la plus couramment utilisée est [nohup]. D'après le nom, vous pouvez savoir si elle suspend l'exécution de la commande, ferme le terminal ou se déconnecte d'un compte. Le processus continuera à s'exécuter. le symbole.
Utilisation : commande nohup [Arg…] [&]
$ nohup sh test.sh & # 直接关闭当前终端,再打开一个查看 $ ps -few|grep test.sh
Comme le montre ce qui précède, le processus parent de test.sh que nous exécutons est devenu [PID 1] et est repris par le processus principal Linux.
setsid
nohup consiste à ignorer le signal SIGHUP, y a-t-il d'autres idées ?
La commande setip peut rouvrir la session, hériter de l'ID du groupe de processus parent et échapper au contrôle du processus parent. Comme vous pouvez le voir sur l'image ci-dessous, le processus parent du script test.sh est déjà init 1. À l'heure actuelle, indépendamment de la fermeture ou de la sortie du terminal, cela n'a rien à voir avec le programme en arrière-plan.
$ setsid sh test.sh

Une autre différence entre setsid et nohup est qu'il n'est pas nécessaire d'utiliser le symbole & d'arrière-plan.
sortie
Utilisez la commande exit pour quitter le terminal, mais notre programme continuera à s'exécuter. Pourquoi ?
En effet, lors de la sortie du terminal à l'aide de la commande exit, le signal SIGHUP ne sera pas envoyé à la tâche à laquelle appartient le terminal. Il est contrôlé par l'élément de configuration huponexit. La valeur par défaut est désactivée. voir le.

[root@api ~]# shopt |grep huponexit huponexit off
Configurez huponexit sur activé, utilisez à nouveau la commande exit pour quitter et les tâches correspondantes se termineront en conséquence.
[root@api ~]# shopt -s huponexit [root@api ~]# shopt |grep huponexit huponexit on
piège
La commandetrap est une commande intégrée à Linux. L'action à entreprendre lors de la réception du signal spécifié, suivie du nom du signal à traiter, est la suivante :

Lorsqu'un script doit être mis en arrière-plan et que nous ne voulons pas que le terminal quitte et ferme le programme, nous pouvons ajouter la commande trap au script pour ignorer le signal SIGHUP (suspendre le processus).
#!/bin/sh trap "" HUP while true;do date >> /root/test.txt sleep 1 done
La commande Linux screen est utilisée pour les programmes de gestion multi-fenêtres. Elle peut créer un terminal et laisser le programme s'y exécuter
.
screen sh test.sh &
Comme le montre l'exemple, le processus parent du script de test est le processus du terminal d'écran, et le processus parent PID1 du terminal d'écran termine également l'exécution du processus en arrière-plan.
En bref, fonctionner en arrière-plan est une technique très courante et pratique sous Linux. Qu'il s'agisse d'effectuer certains services en arrière-plan côté serveur ou d'effectuer des tâches de longue durée sur un ordinateur personnel, les opérations en arrière-plan peuvent nous aider à améliorer notre efficacité et à faciliter notre travail quotidien.
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!

Outils d'IA chauds

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

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

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

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

Utilisation de Python dans Linux Terminal ...

Le multithreading dans la langue peut considérablement améliorer l'efficacité du programme. Il existe quatre façons principales d'implémenter le multithreading dans le langage C: créer des processus indépendants: créer plusieurs processus en cours d'exécution indépendante, chaque processus a son propre espace mémoire. Pseudo-Multithreading: Créez plusieurs flux d'exécution dans un processus qui partagent le même espace mémoire et exécutent alternativement. Bibliothèque multi-thread: Utilisez des bibliothèques multi-threades telles que PTHEADS pour créer et gérer des threads, en fournissant des fonctions de fonctionnement de thread riches. Coroutine: une implémentation multi-thread légère qui divise les tâches en petites sous-tâches et les exécute tour à tour.

Pour ouvrir un fichier web.xml, vous pouvez utiliser les méthodes suivantes: Utilisez un éditeur de texte (tel que le bloc-notes ou TextEdit) pour modifier les commandes à l'aide d'un environnement de développement intégré (tel qu'Eclipse ou NetBeans) (Windows: Notepad web.xml; Mac / Linux: Open -A TextEdit web.xml)

En ce qui concerne le problème de la suppression de l'interpréteur Python qui est livré avec des systèmes Linux, de nombreuses distributions Linux préinstalleront l'interpréteur Python lors de l'installation, et il n'utilise pas le gestionnaire de packages ...

Linux est mieux utilisé comme gestion de serveurs, systèmes intégrés et environnements de bureau. 1) Dans la gestion des serveurs, Linux est utilisé pour héberger des sites Web, des bases de données et des applications, assurant la stabilité et la fiabilité. 2) Dans les systèmes intégrés, Linux est largement utilisé dans les systèmes électroniques intelligents et automobiles en raison de sa flexibilité et de sa stabilité. 3) Dans l'environnement de bureau, Linux fournit des applications riches et des performances efficaces.

Debianlinux est connu pour sa stabilité et sa sécurité et est largement utilisé dans les environnements de serveur, de développement et de bureau. Bien qu'il y ait actuellement un manque d'instructions officielles sur la compatibilité directe avec Debian et Hadoop, cet article vous guidera sur la façon de déployer Hadoop sur votre système Debian. Exigences du système Debian: Avant de commencer la configuration de Hadoop, assurez-vous que votre système Debian répond aux exigences de fonctionnement minimales de Hadoop, qui comprend l'installation de l'environnement d'exécution Java (JRE) nécessaire et des packages Hadoop. Étapes de déploiement de Hadoop: Télécharger et unzip Hadoop: Téléchargez la version Hadoop dont vous avez besoin sur le site officiel d'Apachehadoop et résolvez-le

Dois-je installer un client Oracle lors de la connexion à une base de données Oracle à l'aide de Go? Lorsque vous développez GO, la connexion aux bases de données Oracle est une exigence commune ...

"Debianstrings" n'est pas un terme standard, et sa signification spécifique n'est pas encore claire. Cet article ne peut pas commenter directement la compatibilité de son navigateur. Cependant, si "DebianStrings" fait référence à une application Web exécutée sur un système Debian, sa compatibilité du navigateur dépend de l'architecture technique de l'application elle-même. La plupart des applications Web modernes se sont engagées à compatibilité entre les navigateurs. Cela repose sur les normes Web suivantes et l'utilisation de technologies frontales bien compatibles (telles que HTML, CSS, JavaScript) et les technologies back-end (telles que PHP, Python, Node.js, etc.). Pour s'assurer que l'application est compatible avec plusieurs navigateurs, les développeurs doivent souvent effectuer des tests croisés et utiliser la réactivité
