Comment démarrer la commande Linux en arrière-plan et détacher le processus dans le terminal
- 3924
- 151
- Maëlle Perez
Dans ce guide, nous mettrons en lumière un concept simple mais important dans la manipulation des processus dans un système Linux, c'est-à-dire comment détacher complètement un processus à partir de son terminal contrôlant.
Lorsqu'un processus est associé à un terminal, deux problèmes peuvent survenir:
- Votre terminal de contrôle est rempli de données de sortie et d'erreur / messages de diagnostic.
- Dans le cas où le terminal est fermé, le processus ainsi que ses processus d'enfants seront licenciés.
Pour faire face à ces deux problèmes, vous devez détacher totalement un processus à partir d'un terminal contrôlant. Avant de bouger réellement pour résoudre le problème, couvrons brièvement comment exécuter des processus en arrière-plan.
Comment démarrer un processus ou une commande Linux en arrière-plan
Si un processus est déjà en exécution, comme l'exemple de commande TAR ci-dessous, appuyez simplement sur Ctrl + z
Pour l'arrêter puis entrez la commande bg
Pour continuer son exécution en arrière-plan comme travail.
Vous pouvez afficher tous vos travaux d'arrière-plan en tapant emplois
. Cependant, c'est stdin, stdout, stderr sont toujours rejoints au terminal.
$ TAR -CZF Home.le goudron.gz . $ bg $ jobsExécuter la commande Linux en arrière-plan
Vous pouvez également exécuter un processus directement à partir de l'arrière-plan en utilisant l'ampersand, &
signe.
$ TAR -CZF Home.le goudron.gz . & $ JobsDémarrer le processus Linux en arrière-plan
Jetez un œil à l'exemple ci-dessous, bien que la commande TAR a été lancée comme un travail d'arrière-plan, un message d'erreur a toujours été envoyé au terminal, ce qui signifie que le processus est toujours connecté au terminal de contrôle.
$ TAR -CZF Home.le goudron.gz . & $ JobsProcessus linux fonctionnant dans un message d'arrière-plan
Gardez les processus Linux en cours d'exécution après la sortie du terminal
Nous utiliserons renier Commande, il est utilisé après le lancement du processus A et mis en arrière FG
, bg
commandes sur ce travail particulier.
De plus, lorsque vous fermez le terminal de contrôle, le travail ne suspende pas ou n'enverra pas Faire un coup de pouce à tous les emplois d'enfants.
Lire suggérée: 5 façons de maintenir des séances et des processus SSH à distance en cours d'exécution
Jetons un coup d'œil à l'exemple ci-dessous de l'utilisation diswon Fonction intégrée de bash.
Modèles $ sudo rsync / * / var / www / html / fichiers / & $ jobs $ diry -h% 1 $ jobsGardez le processus Linux en cours après la fermeture du terminal
Vous pouvez aussi utiliser nohup
Commande, qui permet également à un processus de continuer à s'exécuter en arrière-plan lorsqu'un utilisateur sort d'un shell.
$ nohup tar -czf iso.le goudron.Modèles GZ / * & $ JobsMettez le processus Linux en arrière-plan après la fermeture de la coque
Détacher un processus Linux de contrôler le terminal
Par conséquent, pour détacher complètement un processus à partir d'un terminal de contrôle, utilisez le format de commande ci-dessous, cela est plus efficace pour l'interface utilisateur graphique (Gui) Applications telles que Firefox:
$ firefox / dev / null &
En linux, / dev / null est un fichier de périphérique spécial qui écrit (se débarrasser de) toutes les données qui lui sont écrites, dans la commande ci-dessus, l'entrée est lue et la sortie est envoyée à / dev / null.
Lire suggérée: 10 exemples de commande d'écran pour détacher les séances de terminal
Comme remarque finale, à condition qu'un processus soit connecté à un terminal de contrôle, en tant qu'utilisateur, vous verrez plusieurs lignes de sortie des données de processus ainsi que des messages d'erreur sur votre terminal. Encore une fois, lorsque vous fermez le terminal de contrôle, votre processus et vos processus enfants seront licenciés.
Surtout, pour toute question ou remarque sur le sujet, contactez-nous en utilisant le formulaire de commentaire ci-dessous.
- « Comment installer lampe avec PHP 7 et Mariadb 10 sur Ubuntu 16.dix
- Installation d'Ubuntu 16.10 (yakkety yak) Desktop »