[bash] Si je ferme la fenête ? Exécution terminée ou pas ?

Questions et astuces concernant l'installation et la configuration d'archlinux
sunseb
Daikyu
Messages : 82
Inscription : mar. 03 mars 2009, 15:11

[bash] Si je ferme la fenête ? Exécution terminée ou pas ?

Message par sunseb »

Bonsoir,

Petite question : admettons que je lance un script sous BASH, que celui-ci est en train de s'exécuter, et que je ferme la fenêtre...

Est-ce que mon script va s'arrêter ou le processus continuera en arrière-plan ?

Merci à ceux qui répondront à cette question existentielle...

:chinois:
~ SunSéb ~
Avatar de l’utilisateur
benjarobin
Maître du Kyudo
Messages : 17596
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [bash] Si je ferme la fenête ? Exécution terminée ou pas ?

Message par benjarobin »

Il se ferme, utilise "screen" pour pouvoir le faire continuer en arrière plan
Zsh | KDE | PC fixe : AMD Ryzen 9900X, Radeon RX 7700 XT
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
Avatar de l’utilisateur
tuxce
Maître du Kyudo
Messages : 6677
Inscription : mer. 12 sept. 2007, 16:03

Re: [bash] Si je ferme la fenête ? Exécution terminée ou pas ?

Message par tuxce »

ou nohup, dtach etc...
sunseb
Daikyu
Messages : 82
Inscription : mar. 03 mars 2009, 15:11

Re: [bash] Si je ferme la fenête ? Exécution terminée ou pas ?

Message par sunseb »

Merci. :chinois:

Et même dans le cas où je redonne la main au terminal avec le & en fin de commande ? Si je comprends bien, le terminal c'est comme une session à part entière, dès qu'on ferme le terminal, tous les processus se ferment également ?
~ SunSéb ~
Avatar de l’utilisateur
tuxce
Maître du Kyudo
Messages : 6677
Inscription : mer. 12 sept. 2007, 16:03

Re: [bash] Si je ferme la fenête ? Exécution terminée ou pas ?

Message par tuxce »

Ça dépend de la commande, si elle est attachée au terminal, elle va se terminer, sinon non.
Addict7
newbie
Messages : 7
Inscription : jeu. 24 déc. 2009, 00:12

Re: [bash] Si je ferme la fenête ? Exécution terminée ou pas ?

Message par Addict7 »

Pour aller un peu plus dans le détail, par défaut, quand tu lance un processus depuis un terminal, ce terminal est concidéré comme processus père, et ce que t'a lancé comme processus fils. Sous linux la logique est que quand un processus est tué, il envoie un signal pour tuer ses fils (ouais c'est gore).
Du coup si tu fait rien de particulier (genre screen), fermer un terminal fermera donc forcement tout ce que t'a lancé avec le terminal.
Avatar de l’utilisateur
tuxce
Maître du Kyudo
Messages : 6677
Inscription : mer. 12 sept. 2007, 16:03

Re: [bash] Si je ferme la fenête ? Exécution terminée ou pas ?

Message par tuxce »

Addict7 a écrit :Pour aller un peu plus dans le détail, par défaut, quand tu lance un processus depuis un terminal, ce terminal est concidéré comme processus père, et ce que t'a lancé comme processus fils. Sous linux la logique est que quand un processus est tué, il envoie un signal pour tuer ses fils (ouais c'est gore).
C'est dans l'autre sens que ça se passe (du coup c'est beaucoup moins gore), c'est le fils qui envoie un signal au père et juste pour l'informer qu'il s'arrête, le père en fait ce qu'il veut, ce qui peut entraîner l'état de zombie si le père ne lit pas le signal.

Ce qui ferme les process fils d'un terminal, c'est propre à bash (et à la plupart des shells quand ils sont en mode interactif), s'il reçoit un SIGHUP, il le renvoie à tous ses fils, d'où la commande nohup
Addict7
newbie
Messages : 7
Inscription : jeu. 24 déc. 2009, 00:12

Re: [bash] Si je ferme la fenête ? Exécution terminée ou pas ?

Message par Addict7 »

Ho en effet mea culpa, je m'emballe et je confond les signaux posix avec ceux de mon projet de recherche :/
Répondre