Um trabalho de parada está em execução para a Sessão c2 do usuário

56

A seguinte mensagem aparece quase toda vez que eu desligo o computador:

A stop job is running for Session c2 of user ... (1min 30s)

Aguarda 1min30s e continua o processo de desligamento. I siga este guia diagnóstico desligamento systemd e obter o desligamento-log.txt (Eu não posso colar diretamente o log aqui porque é muito longa). Infelizmente, eu não entendo o log sozinho. Alguém poderia me ajudar a descobrir o que faz meu sistema não desligar corretamente?

Eu corro Arch Linux com kernel 4.4.5-1-ARCH, minha systemdversão é 229-3.

Adição 1: Observo que toda vez que faço logoff e, em seguida, desligo o computador na tela de login, ele não recebe a mensagem A stop job is running.... Tentei sair do sistema antes do desligamento muitas vezes, então acho que isso não ocorre por acaso. Espero que a informação possa ajudar.

Adição 2: é sempre a sessão c2 que causa o desligamento interrompido. Então, como o @ n.st sugere, examinei novamente o Diagnóstico de problemas de desligamento e o armazenei em loginctl session-status c2vez de dmesg, mas não há nada no shutdown-log.txt. Substituí loginctl session-status c2por systemd-cglse obtive o seguinte log:

Control group /:
-.slice
└─init.scope
  ├─   1 /usr/lib/systemd/systemd-shutdown reboot --log-level 6 --log-target ...
  ├─1069 /usr/lib/systemd/systemd-shutdown reboot --log-level 6 --log-target ...
  ├─1071 /bin/sh /usr/lib/systemd/system-shutdown/debug.sh reboot
  └─1074 systemd-cgls

Alguma ideia?

Nota: Depois de atualizar para o kernel 4.6.4-1-ARCHe systemd 230-7, o erro não aconteceu mais.

macnguyen
fonte
Infelizmente, a dmesgsaída que você colou não é muito informativa - mostra o WiFi desconectado quando você pressiona o botão de desligamento (3048 segundos após a inicialização do sistema) e nada até o temporizador de 1m30s expirar e o sistema continuar sendo desligado (em 3139 segundos).
N
11
Para verificar o que está em execução naquela sessão sinistra c2 que não está sendo finalizada por si só, use loginctl session-status c2. Não tenho certeza se você ainda pode alternar para um getty durante o desligamento, mas tente pressionar Ctrl + Alt + F2 quando aparecer "Um trabalho de interrupção está sendo executado ...". Se isso funcionar, você receberá um prompt de login e poderá usar o loginctlcomando Se você não receber uma solicitação de login, siga as mesmas etapas que usou dmesg, mas armazene a saída loginctl session-status c2. (Isso é tudo assumindo que é sempre "c2", que está pendurado, não mais uma sessão de cada vez.)
n.st
11
Você pode obter uma correção (temporária) com este hack: Crie /etc/sysctl.d/50-coredump.confcom o conteúdo :,kernel.core_pattern=core ref: github.com/systemd/systemd/issues/1615#issuecomment-203507283
Runium
11
github.com/systemd/systemd/issues/2691 Isto pode ser relevante
Natecat
2
@aurelien É sempre o c2 que está causando o temporizador no desligamento? Nesse caso, você pode seguir Diagnosticar problemas de desligamento novamente e armazenar em loginctl session-status c2vez de dmesg.
N

Respostas:

45

Uma solução alternativa para esse problema é reduzir esse tempo limite /etc/systemd/system.confde 90 para 10s, por exemplo:

DefaultTimeoutStopSec=10s

e execute o seguinte comando no terminal após fazer alterações

$ systemctl daemon-reload
MightyPork
fonte
9
isso não explica ou resolver o problema, também à espera de 10s e nem mesmo ter um desligamento normal não é grande em tudo
jcora
Existe algum trabalho que demore mais de 10s para parar?
Jared Chu
10

Esse problema pode ter muitas causas, portanto, respostas específicas não funcionam muito bem. Tente isso para solucionar problemas:

  1. aguarde a mensagem "Um trabalho de parada está sendo executado para a Sessão c2 ..." aparecer no desligamento e reinicie após a conclusão do desligamento
  2. execute journalctl -p5em um terminal e pressione ENDpara chegar ao final do diário systemd ( -p5filtra muito lixo)
  3. iniciar uma pesquisa pressionando /e digite o termo de pesquisatimed out. Killing.
  4. pesquise para trás pressionando SHIFT+Nrepetidamente
  5. a linha abaixo de cada partida informa qual aplicativo estava se comportando mal:Killing process 1234 (jack_thru) with signal SIGKILL.

Se é sempre o mesmo aplicativo, você deseja descobrir o que faz e por que não é interrompido no desligamento. Caso contrário, poderia ser mais complicado resolver o problema, mas você ainda pode receber uma dica ou duas.

Boa sorte! :)

mzuther
fonte
11
Obrigado por esta resposta correta. Usei-o para descobrir que, no meu caso, as notificações "lpf" do Fedora 30 foram a causa e, no lpf-gui, desmarcou Notificações | Ativar notificações.
vk5tu 11/08
5

Eu tive o mesmo problema, pesquisando, encontrei um post em um fórum reddit do Arch Linux.

Aqui está a solução que funciona para mim https://www.reddit.com/r/archlinux/comments/4bawf7/a_stop_job_is_running_for_session_c2_of_user/d17th3u

Instalar watchdog

# pacman -S watchdog

E, em seguida, inicie o serviço na inicialização:

# systemctl enable watchdog.service

Inicie o serviço para não ver mais a mensagem

# systemctl start watchdog.service

Eu crio uma essência para este https://gist.github.com/dianjuar/98d02af4050dc2df8ae6f18695d44ca3

Diego Juliao
fonte
Eu segui o seu guia, mas isso não resolve o problema. Obrigado mesmo assim.
macnguyen
2
Existem outras implicações para essa correção? Aparentemente watchdog , o hardware redefinirá o sistema se atrasar ou falhar em outros testes. Portanto, quando o tempo limite da pergunta ocorrer, o watchdog reiniciará o computador. Gostaria de saber se o sistema seria encerrado de forma mais limpa se reduzíssemos o tempo limite de acordo com a outra resposta. Também me pergunto se watchdogforçaria uma redefinição em outras situações indesejadas.
quer
Eu li sua página de manual . Eu acho que o watchdog impede a reinicialização dizendo ao kernel do linux que está tudo bem, #
587 Diego Diegoo
> Ele abre / dev / watchdog e continua escrevendo nele com freqüência suficiente para impedir que o kernel seja redefinido, pelo menos uma vez por minuto.
Diego Juliao 13/12
No pacote chamado watchdog no openSUSE, então isso realmente não me ajudar :(
David Faure
4

Encontrei uma solução aqui que funcionou para mim com o Debian 9 no vbox. Eu estava recebendo o atraso típico de 120 segundos ao desligar ou reiniciar.

https://forums.kali.org/showthread.php?32498-Delay-90-seconds-on-shutdown

Faça exatamente como Ironman diz:

A solução é abrir o shell e "desligar agora" e, quando a máquina voltar a funcionar, faça uma "reinicialização" e a mensagem desaparecerá e futuras reinicializações não serão mais interrompidas.

Eu usei "sudo shutdown now" e o atraso de reinicialização se foi. Parece muito simples, mas funcionou para mim (e outros).

HTH

Dennis Cote
fonte
8
Por que essa resposta tem tantos votos positivos? Não funcionou para mim, e não dá idéia do por que deveria funcionar.
Rodrigo
Funcionou para mim, mas ainda não está claro por que isso aconteceu.
pstryk 26/04
3

Tendo tido um problema semelhante no Kali [2017.01], com atraso de logoff alternado exibido por:

"Um trabalho de parada está sendo executado para a Sessão c1 do usuário Debian-gdm"

"Um trabalho de parada está sendo executado para o Gerenciador de usuários do UID 132"

Eu consegui livrar um erro parando NetworkManagerantes do desligamento ou desativá-lo, com:

# To get rid of: "A stop job is running for User manager for UID 132"
systemctl disable NetworkManager 
systemctl stop NetworkManager 

Provavelmente, isso deve ser corrigido ou colocado de outra maneira ao reiniciar.

Quanto ao outro atraso, não obtive sucesso. Parece que pode estar relacionado ao GDM ( Gnome Display Manager ) pulseaudioou dbus. Portanto, como não consegui isolar o problema, a única maneira era definir as DefaultTimeout*Sec=5sentradas system.confcomo já mencionado em outras postagens.

Outros problemas que podem ser investigados são mostrados em:

# systemctl --state=masked --state=not-found --state=failed

  UNIT                           LOAD      ACTIVE   SUB  DESCRIPTION                   
 tmp.mount                      not-found inactive dead tmp.mount                     
 auditd.service                 not-found inactive dead auditd.service                
 console-screen.service         not-found inactive dead console-screen.service        
 festival.service               not-found inactive dead festival.service              
 kbd.service                    not-found inactive dead kbd.service                   
 live-tools.service             masked    inactive dead live-tools.service            
 plymouth-quit-wait.service     not-found inactive dead plymouth-quit-wait.service    
 plymouth-quit.service          not-found inactive dead plymouth-quit.service         
 plymouth-start.service         not-found inactive dead plymouth-start.service        
 systemd-sysusers.service       not-found inactive dead systemd-sysusers.service      
 systemd-update-done.service    not-found inactive dead systemd-update-done.service   
 systemd-vconsole-setup.service not-found inactive dead systemd-vconsole-setup.service
 syslog.target                  not-found inactive dead syslog.target                 

LOAD   = Reflects whether the unit definition was properly loaded.
ACTIVE = The high-level unit activation state, i.e. generalization of SUB.
SUB    = The low-level unit activation state, values depend on unit type.

e:

# systemd-cgls -u user-132.slice

Unit user-132.slice (/user.slice/user-132.slice):
├─user@132.service
 ├─pulseaudio.service
  └─739 /usr/bin/pulseaudio --daemonize=no
 ├─at-spi-dbus-bus.service
  ├─704 /usr/lib/at-spi2-core/at-spi-bus-launcher
  ├─709 /usr/bin/dbus-daemon --config-file=/usr/share/defaults/at-spi2/accessibility.conf --nofork --print-address 3
  └─712 /usr/lib/at-spi2-core/at-spi2-registryd --use-gnome-session
 ├─dbus.service
  └─694 /usr/bin/dbus-daemon --session --address=systemd: --nofork --nopidfile --systemd-activation --syslog-only
 └─init.scope
   ├─597 /lib/systemd/systemd --user
   └─600 (sd-pam)
└─session-c1.scope
  ├─577 gdm-session-worker [pam/gdm-launch-environment]
  ├─613 /usr/lib/gdm3/gdm-x-session gnome-session --autostart /usr/share/gdm/greeter/autostart
  ├─618 /usr/lib/xorg/Xorg vt1 -displayfd 3 -auth /run/user/132/gdm/Xauthority -background none -noreset -keeptty -verbose 3
  ├─697 /usr/lib/gnome-session/gnome-session-binary --autostart /usr/share/gdm/greeter/autostart
  ├─721 /usr/bin/gnome-shell
  └─752 /usr/lib/gnome-settings-daemon/gnome-settings-daemon
not2qubit
fonte
2
Essa resposta nos fornece pelo menos algumas informações sobre como encontrar o que (das muitas possibilidades) pode estar causando o problema em nossas máquinas individuais. Outro problema é que, após um poweroffou nãoshutdown podemos logar para ver o culpado real. O systemd precisa registrar a saída dos cgls quando esse problema ocorre. O melhor que podemos fazer por enquanto é salvar a saída e consultá-la mais tarde se / quando o travamento acontecer novamente. systemd-cgls
duanev 28/03
2

Como este é um dos primeiros resultados no mecanismo de pesquisa mais amigável de todos os tempos, adicionarei minha solução aqui: estou usando o Arch Linux com a área de trabalho do Gnome; kernel atual até hoje: 4.16.

Recebi a mensagem A stop job is running for Session c2 of user ... (1min 30s)sempre que Remote Loginfoi ativado Settings > Sharinge Sharingfoi ativado.

Sempre que eu desabilitava isso, meu computador era desligado corretamente usando o botão de desligamento do Gnome.

Como "Login Remoto" nada mais é do que SSH, presumo que a resposta do not2qubit também funcione, pois a desativação do NetworkManager provavelmente também o desativará.

stueja
fonte
1

Às vezes, isso pode ser causado por um aplicativo. Lembrar as alterações feitas antes que isso comece a acontecer pode ser útil para identificar a causa. Eu tive o mesmo problema depois de instalar skypeforlinux-stable-binno Arch Linux. Fechar o aplicativo antes de desligar resolveu o problema (escrevi um script para fazer isso automaticamente antes de desligar).

prosoitos
fonte
0

Eu tive esse problema por um longo tempo, então pensei em compartilhar minha solução.

O problema é que o Google Chrome está sendo executado em segundo plano e não fecha ao desligar o computador. Portanto, a melhor solução é desativar esse recurso.

  1. Vá para as configurações do Google Chrome.
  2. Clique em "Avançado".
  3. Vá para "Sistema".
  4. Desative "Continue executando aplicativos em segundo plano quando o Google Chrome estiver fechado".

insira a descrição da imagem aqui

Isso resolveu para mim. Espero que ajude.

ArianJM
fonte