Depois de enviar o comando shutdown, a sessão ssh não termina

9

Sempre que eu mando o comando para desligar ou reiniciar meus servidores Debian, meu shell permanece pendente e não responde (não consigo digitar nenhum comando).

Realizar a mesma ação nos resultados do Ubuntu na sessão fecha normalmente para que eu não tenha um terminal amarrado pendurado lá. Existe um pacote que eu preciso instalar ou uma alteração de configuração a ser feita para que eu possa obter esse mesmo comportamento no Debian?

    
por Programster 18.07.2015 / 21:03

2 respostas

10

Isso funcionou para mim:

apt-get install libpam-systemd dbus

Verifique também se você tem UsePAM yes em sua configuração ssh.

grep -i UsePAM /etc/ssh/sshd_config

Infelizmente, você precisa reiniciar para que a solução entre em vigor ...

Explicações detalhadas sobre serverfault .

    
por 09.03.2016 / 19:44
6

Parece que esse é um problema de systemd atualmente rastreado sob bug # 751636 .

Quando o host é desligado ou reiniciado, systemd pode encerrar a rede antes de matar a sessão ssh.

Existem algumas soluções fornecidas, mas nada concreto:

  1. Usando acpid/acpi-support-base para lidar com os eventos de energia & adicione o seguinte ao /etc/acpi/powerbtn-acpi-support.sh

    else
    -       # Normal handling.
    -       /sbin/shutdown -h -P now "Power button pressed"
    +
    +       if [ -x /bin/systemctl ] ; then
    +           echo "\nPower button pressed\nThe system is going down for system halt NOW!" |\
    +            /usr/bin/wall -n
    +           /bin/systemctl --force poweroff
    +       else
    +           # Normal handling.
    +           /sbin/shutdown -h -P now "Power button pressed"
    +       fi
    +
    fi
    

    e, em seguida, criar aliases no seu ~/.bashrc :

    alias reboot='echo "The system is going down for system reboot NOW!" |\
    /usr/bin/wall -n ; /bin/systemctl --force reboot'
    
    alias poweroff='echo "The system is going down for system halt NOW!" |\
    /usr/bin/wall -n ; /bin/systemctl --force poweroff'
    
  2. Criando /etc/systemd/system/ssh-user-sessions.service com o seguinte:

    [Unit]
    Description=Shutdown all ssh sessions before network
    After=network.target
    
    [Service]
    TimeoutStartSec=0
    Type=oneshot
    RemainAfterExit=yes
    ExecStart=/bin/true
    ExecStop=/usr/bin/killall sshd
    
por 19.07.2015 / 00:01