Un processus d'arrière-plan est un processus informatique qui s'exécute en arrière-plan , sans intervention de l'utilisateur. Les tâches typiques de ces processus incluent la journalisation, la surveillance du système, la planification, et la notification des utilisateurs.
Sous Windows , un processus d'arrière-plan est soit un programme informatique sans interface utilisateur , soit un service Windows . Les premiers se lancent comme n'importe quel autre programme, par exemple via le menu Démarrer . Les services Windows, quant à eux, sont lancés par le Gestionnaire de contrôle des services . Sous Windows Vista et versions ultérieures, ils s'exécutent dans une session distincte .de type Unix , un démon est un processus d'arrière-plan. Cependant, dans un shell prenant en charge le contrôle des tâches , un processus appartenant à un groupe de processus dont l'identifiant diffère de son identifiant de groupe de terminaux (TGID) est considéré comme un processus d'arrière-plan. (Le TGID d'un processus est l'identifiant du processus chef de groupe ayant ouvert le terminal, généralement le shell de connexion. Le TGID identifie le terminal de contrôle du groupe de processus.) Ce type de processus ne peut recevoir de signaux clavier de son terminal parent et n'y envoie généralement pas de sortie. Cette définition plus technique ne fait pas de distinction selon que le processus peut ou non recevoir une intervention de l'utilisateur. Bien que les processus d'arrière-plan soient généralement utilisés pour des tâches nécessitant peu de ressources, tout processus peut être exécuté en arrière-plan et se comportera alors comme n'importe quel autre processus, à l'exception des points mentionnés précédemment.
systèmes d'exploitation Windows NT , un service Windows est un processus d'arrière-plan dédié. Un service Windows doit se conformer aux règles d'interface et aux protocoles du Gestionnaire de contrôle des services , le composant responsable de la gestion des services Windows.Les services Windows peuvent être configurés pour démarrer au lancement du système d'exploitation et pour s'exécuter en arrière-plan tant que Windows est actif. Ils peuvent également être démarrés manuellement ou par un événement. Les systèmes d'exploitation Windows NT incluent de nombreux services qui s'exécutent dans le contexte de trois comptes d'utilisateur : utilisateur System, Network Serviceutilisateur et Local Servicecompte utilisateur. Ces composants Windows sont souvent associés au processus hôte des services Windows : svchost.exe . Comme les services Windows fonctionnent dans le contexte de leurs propres comptes d'utilisateur dédiés, ils peuvent être actifs même lorsqu'aucun utilisateur n'est connecté.
Avant Windows Vista , les services installés en tant que « services interactifs » pouvaient interagir avec le bureau Windows et afficher une interface utilisateur graphique . Avec Windows Vista, cependant, les services interactifs sont devenus obsolètes et ont cessé de fonctionner correctement, suite au renforcement de la sécurité des services Windows .
Les trois principaux moyens de gérer les services Windows sont :
- Composant logiciel enfichable Services pour la console de gestion Microsoft
sc.exe- Windows PowerShell
Démon
Lorsqu'une session se termine, que ce soit par déconnexion explicite ou par interruption réseau, tous les processus, y compris ceux en arrière-plan, sont automatiquement arrêtés afin d'éviter qu'ils ne deviennent orphelins . Concrètement, lorsque l'utilisateur quitte le processus shell qui l'a lancé, celui-ci envoie un signal de déconnexion ( SIGHUP ) à tous ses processus pour les terminer . Pour que les processus continuent de s'exécuter, il est possible soit de ne pas fermer la session, soit de la fermer sans arrêter les processus. Un multiplexeur de terminaux permet de maintenir une session active tout en détachant un terminal virtuel, laissant ainsi les processus s'exécuter en tant que processus enfants de la session ; l'utilisateur peut ensuite rattacher la session ultérieurement. Il est également possible d'empêcher l'arrêt des processus en lançant le processus via la commande `nohup` (indiquant au processus d'ignorer SIGHUP) ou en l'exécutant ultérieurement disownavec son identifiant de tâche, ce qui supprime la tâche de la liste des tâches ou empêche simplement l'envoi du signal SIGHUP. Dans ce dernier cas, lorsque la session se termine, les processus enfants ne sont pas arrêtés, soit parce qu'ils ne reçoivent pas de SIGHUP, soit parce qu'ils l'ignorent, et deviennent ainsi des processus orphelins, qui sont alors adoptés par le processus init (le noyau définit le processus init comme leur parent), et ils continuent à fonctionner sans session, désormais appelés démons .
Exemple
Dans cet exemple exécuté sous Unix , l' utilitaire sleep a été lancé en arrière-plan. Ensuite, l' outil ps a été exécuté au premier plan, affichant le texte ci-dessous. Les deux ont été lancés depuis le shell.