Continuez une mise à jour toujours en route

Tags: #<Tag:0x00007f509d4a14e8> #<Tag:0x00007f509d4a1420> #<Tag:0x00007f509d4a1358>

Bonjour

Je vais essayer de cours et simple
(par contre je précise que je ne suis pas non plus expert)

Aujourd’hui j’ai décidé de passer de debian 9 à 10
Viens le moment de dovecot de se mettre à jour, là, ma fenêtre ssh m’affiche l’outil de configuration des paquets (l’écran bleu avec fenêtre grise) concernant le fichier de configuration modifié comme cela https://wiki.debian-fr.xyz/images/8/81/Snapshot209.jpeg

Ne sachant pas vraiment quoi choisir j’ai choisi « lancer un shell pour examiner la situation »
je me suis dit Top un outil qui va m’aider , mais tout ça à disparu pour me remettre ma fenêtre de commande… root@ns******:~#
Je pense que le sous-shell s’est ouvert mais caché

Savez-vous comment faire vu que j’ai pas vraiment de système de fenêtre pour revenir sur l’outil ? car ça bloque tout
Une commande pour reprendre?

Merci à vous

Oui, il t’a ouvert un shell, conformément à ton choix. Tu peux t’assurer qu’il s’agit d’un sous-shell en récupérant son PID par exemple (avec echo $$) puis en regardant les parents de ce processus, avec la méthode de ton choix (ps, pstree, etc.)

Si tu fermes ce shell (exit, ou Ctrl+d), tu reviendras sur la fenêtre dialog (l’écran bleu avec la fenêtre grise).

J’ai obtenu une très longue liste ^^ mais je pense avoir trouvé la bonne en lien avec le problème
C’est bien
├─apt(16206)───dpkg(26612)───dovecot-core.po(22739)───frontend(23559)───ucf(23599)───bash(24245)
?

ça y ressemble bien, oui, surtout si 24245 est le PID du sous shell (en regardant un peu sur le web, j’ai appris qu’il y avait aussi la variable $BASHPID)

Merci @Sputnik93
Comment l’ouvrir je ne trouve pas sur Google une commande pour ouvrir un processus
Ou je peux dire faire un kill 24245 ?
Je préfère demander avant de faire une bêtise ^^

Tu n’as pas besoin « d’ouvrir » ce processus, tu es déjà dans ton sous-shell (visuellement, rien ne le différencie d’un shell de « plus haut niveau » dans l’arbre des processus, c’est pour cette raison qu’il est de bon ton de vérifier dans quel shell tu te trouves en récupérant le PID de ce shell, avec par exemple echo $BASHPID puis vérifier avec pstree comme tu as fait que ce shell est bien un sous-shell lancé par la mise à jour du paquet). Il te faut juste quitter ce sous-shell (Ctrl+d ou exit).

Voici le résultat du echo et pstree
root@ns******:~# echo $BASHPID
24382
root@ns******:~# pstree -p root -h
systemd(1)─┬─acpid(12971)
├─agetty(804)
├─apache2(26757)─┬─apache2(6320)
│ ├─apache2(9773)
│ ├─apache2(14792)
│ ├─apache2(14803)
│ ├─apache2(17872)
│ ├─apache2(18746)
│ ├─apache2(21996)
│ ├─apache2(22000)
│ ├─apache2(29031)
│ ├─apache2(30171)
│ └─apache2(30174)
├─apt(16206)───dpkg(26612)───dovecot-core.po(22739)───frontend(23559)───ucf(23599)───bash(24245)
├─beamium(737)─┬─{beamium}(842)
│ ├─{beamium}(953)
│ ├─{beamium}(954)
│ ├─{beamium}(960)
│ ├─{beamium}(961)
│ ├─{beamium}(965)
│ ├─{beamium}(967)
│ ├─{beamium}(968)
│ ├─{beamium}(969)
│ ├─{beamium}(970)
│ ├─{beamium}(973)
│ ├─{beamium}(974)
│ ├─{beamium}(975)
│ ├─{beamium}(976)
│ ├─{beamium}(24376)
│ ├─{beamium}(24377)
│ ├─{beamium}(24394)
│ ├─{beamium}(24395)
│ └─{beamium}(24397)
├─cron(26892)
├─dbus-daemon(473)
├─freshclam(10772)
├─irqbalance(6942)───{irqbalance}(6943)
├─master(22264)─┬─anvil(11488)
│ ├─pickup(16691)
│ ├─qmgr(22266)
│ ├─smtpd(21536)
│ ├─smtpd(24369)
│ └─tlsmgr(23672)
├─miniserv.pl(19149)
├─miniserv.pl(19526)───miniserv.pl(11930)
├─mysqld(19613)─┬─{mysqld}(19614)
│ ├─{mysqld}(19615)
│ ├─{mysqld}(19616)
│ ├─{mysqld}(19617)
│ ├─{mysqld}(19618)
│ ├─{mysqld}(19619)
│ ├─{mysqld}(19620)
│ ├─{mysqld}(19621)
│ ├─{mysqld}(19622)
│ ├─{mysqld}(19623)
│ ├─{mysqld}(19624)
│ ├─{mysqld}(19625)
│ ├─{mysqld}(19626)
│ ├─{mysqld}(19628)
│ ├─{mysqld}(19629)
│ ├─{mysqld}(19630)
│ ├─{mysqld}(19631)
│ ├─{mysqld}(19632)
│ ├─{mysqld}(19633)
│ ├─{mysqld}(19634)
│ ├─{mysqld}(19635)
│ ├─{mysqld}(19636)
│ ├─{mysqld}(19637)
│ ├─{mysqld}(19638)
│ ├─{mysqld}(19639)
│ ├─{mysqld}(20264)
│ ├─{mysqld}(20269)
│ ├─{mysqld}(28527)
│ ├─{mysqld}(17138)
│ ├─{mysqld}(26864)
│ └─{mysqld}(803)
├─named(724)─┬─{named}(770)
│ ├─{named}(771)
│ ├─{named}(772)
│ ├─{named}(773)
│ ├─{named}(774)
│ ├─{named}(775)
│ ├─{named}(776)
│ ├─{named}(777)
│ ├─{named}(778)
│ └─{named}(779)
├─noderig(1027)─┬─{noderig}(1046)
│ ├─{noderig}(1047)
│ ├─{noderig}(1048)
│ ├─{noderig}(1049)
│ ├─{noderig}(1050)
│ ├─{noderig}(1106)
│ ├─{noderig}(1107)
│ ├─{noderig}(1108)
│ ├─{noderig}(1109)
│ ├─{noderig}(1577)
│ ├─{noderig}(1578)
│ ├─{noderig}(1609)
│ ├─{noderig}(2342)
│ ├─{noderig}(3778)
│ ├─{noderig}(4503)
│ ├─{noderig}(24899)
│ ├─{noderig}(918)
│ └─{noderig}(24263)
├─php-fpm7.2(12043)─┬─php-fpm7.2(1190)
│ ├─php-fpm7.2(12046)
│ ├─php-fpm7.2(12047)
│ ├─php-fpm7.2(12045)
│ └─php-fpm7.2(12044)
├─php-fpm7.3(12066)─┬─php-fpm7.3(12071)
│ ├─php-fpm7.3(12072)
│ ├─php-fpm7.3(12067)
│ ├─php-fpm7.3(23703)
│ ├─php-fpm7.3(23706)
│ ├─php-fpm7.3(21526)
│ ├─php-fpm7.3(23775)
│ ├─php-fpm7.3(24391)
│ ├─php-fpm7.3(9780)
│ ├─php-fpm7.3(17338)
│ ├─php-fpm7.3(23202)
│ └─php-fpm7.3(23838)
├─php-fpm7.4(9714)─┬─php-fpm7.4(9718)
│ ├─php-fpm7.4(9719)
│ ├─php-fpm7.4(9767)
│ ├─php-fpm7.4(9825)
│ ├─php-fpm7.4(21490)
│ ├─php-fpm7.4(32617)
│ ├─php-fpm7.4(32623)
│ ├─php-fpm7.4(10125)
│ ├─php-fpm7.4(13015)
│ ├─php-fpm7.4(22164)
│ ├─php-fpm7.4(23777)
│ └─php-fpm7.4(24363)
├─php5-fpm(13970)─┬─php5-fpm(13973)
│ ├─php5-fpm(13974)
│ └─php5-fpm(13972)
├─proftpd(18180)
├─rsyslogd(12449)─┬─{rsyslogd}(12450)
│ ├─{rsyslogd}(12451)
│ └─{rsyslogd}(12452)
├─smartd(2429)
├─spamd(10805)─┬─spamd child(10807)
│ └─spamd child(10808)
├─sshd(836)───sshd(24364)───bash(24382)───pstree(24402)
├─systemd(843)─┬─(sd-pam)(849)
│ └─gpg-agent(3933)
├─systemd-journal(22632)
├─systemd-logind(599)
├─systemd-timesyn(22637)───{systemd-timesyn}(22640)
└─systemd-udevd(28385)

Ah, tu as ouvert un autre shell via SSH. Tu n’as plus la main sur le shell ouvert précédemment par la post-configuration de dovecot ?

Justement je pense n’avoir jamais eu la main dessus…
Lorsque j’ai choisi "Lancer un shell pour examiner la situation »
ça m’a remis ma fenêtre de commande… root@ns******:~#

Oui c’est normal, tu as demandé à lancer un shell, il te lance un shell (ou « fenêtre de commande »). Comme écrit plus haut, rien ne distingue visuellement ton shell de connexion (quand tu te connectes via ssh) d’un sous-shell lancé par la mise à jour du paquet, ils vont tous les deux te présenter un prompt root@ns*******:~#

Je pense que tu t’es embrouillé avec les notions de shell et sous-shell, peut-être qu’avec un exemple ça te paraîtra plus clair:

sputnik@debian:~$ echo $BASHPID
1596   # <== je suis dans un shell bash qui porte le PID 1596
sputnik@debian:~$ bash # <== là je lance un sous-shell bash
sputnik@debian:~$ echo $BASHPID
1654   # <== le PID de ce sous-shell est 1654
sputnik@debian:~$ pstree -p | grep -C 2 1654
        |                                      |-{sshs}(1203)
        |                                      `-{sshs}(1328)
        |-init(1595)---bash(1596)---bash(1654)-+-grep(1717)
        |                                      `-pstree(1716)
        |-ssh-agent(35)
sputnik@debian:~$

On voit sur la dernière commande que c’est le shell de PID 1596 qui est le parent du (sous-)shell de PID 1654.
Et si je sors de ce sous-shell, je reviens au shell 1596:

sputnik@debian:~$ exit
exit
sputnik@debian:~$ echo $BASHPID
1596
1 J'aime

Oui oui j’ai compris cette notion :blush:
Alors je n’ai jamais utilisé la commande bash pour information
Depuis le problème les seuls choses que j’ai faites c’est bon bah me déco/reco et utiliser screen croyant ça m’aiderait

Il n’y a pas de solution :confused: ?

Comme déjà dit plusieurs fois précédemment :

  1. tu te connectes au sous-shell
  2. tu fermes ce sous-shell avec ctrl+d ou exit

Je pense pas pouvoir faire plus clair ^^

c’est ce que je cherche à faire :slight_smile:

Si tu ne peux plus te connecter au shell à partir duquel tu avais lancé ta mise à jour, et donc ce sous-shell, ça va être un peu plus compliqué.
C’est justement le but d’utilitaires comme screen, normalement, ce (sous-)shell n’apparaît pas dans la sortie de screen -ls ?

No Sockets found in /run/screen/S-root.

La je viens de me connecter là où j’ai lancé initialement l’upgrade donc même machine, même logiciel… Je crains que ça ne change pas grand chose

Regarde si le processus de mise à jour est toujours présent sur le système, et essaie de l’attacher à ton shell courant. Dans le pire des cas, la mise à jour a été interrompue avant d’aller au bout (dans ce cas, apt te dira quoi faire).

Quoi qu’il en soit, tu sauras que lorsque tu demandes à dialog de t’ouvrir un shell, il t’ouvre un shell, et qu’il ne s’agit pas d’un coquillage mais bien de ton invite de commandes :yum:

           ├─apt(16206)───dpkg(26612)───dovecot-core.po(22739)───frontend(23559)───ucf(23599)───bash(24245)

Si je dis pas de bêtise ça veut qu’il est toujours présent

ça je ne sais pas faire ^^

Oui.

Moi non plus ^^. Je pense qu’il faudrait d’abord disown le processus depuis le shell qui l’a lancé, avant de pouvoir l’attacher à un autre shell, mais là on ne peut pas.
Peut-être que quelqu’un d’autre sur le forum aura une idée ?