Como evitar processos de pausa automática em uma sessão de usuário inativa?

14

Por um tempo agora, quando alterno entre duas sessões de usuário, a inativa, em alguns casos, para de executar os processos da GUI. Dessa forma, sou forçado a esperar que outra sessão seja carregada e não posso fazer algo em outra, porque se eu alternar e retornar depois de um tempo, ainda está no mesmo ponto. O software afetado inclui rsync, rdiff-backup, processos em segundo plano do KDE, Steam lançado na sessão do Openbox (até o download é interrompido) e pelo menos alguns jogos. O VLC não é afetado, pelo menos pula para o tempo necessário depois que eu volto, mas por um momento consigo ver o quadro e o tempo antigos na janela.

Que processo é responsável por esse comportamento? Posso reconfigurá-lo de alguma forma?

Atualização: Uso de memória e swap

Algum contexto adicional: A ironia é que sugeri esse comportamento exato no antigo brainstorm.ubuntu.com (agora extinto).

int_ua
fonte
11
@ Fabby feito, não parece um problema de troca, se é isso que você implica.
int_ua
2
Sim, era isso que eu estava sugerindo ... ;-) Tentei simular o comportamento que você está enfrentando: faça logon como usuário, depois faça logon como usuário secundário, inicie um filme, [Ctrl] [Alt ] [F7] para o primeiro usuário, iniciar um findon /, [Ctrl] [Alt] [F8] para o segundo usuário e tudo continua a correr ... (embora o som do filme é silenciado quando alternar usuários.) Como fazer você testa?
Fabby
11
@int_ua Não conheço o steam especificamente, mas tive jogos que contêm códigos específicos para serem pausados ​​ao trocar de usuário ... Eu não uso o KDE, então acho que não posso mais ajudá-lo ... Desculpe!
Fabby
11
Ao observar o estado de saída antes e depois de mudar para outro usuário e por uma luz HDD externa, interrompe toda a atividade durante outra sessão ativa.
int_ua
2
para que rsyncvocê está usando verbosepara imprimir o progresso? você tentou sem ele + tentou enviá-lo diretamente para o plano de fundo rsync .... &? Que tal nohup rsync .... & ? para GUI devem suspender porque há apenas um recurso de saída e ele levado por outra sessão de utilizador e eles vão fazer uma pausa:)
αғsнιη

Respostas:

1

Também me deparo com esse problema porque alterno entre o console e os terminais virtuais gráficos regularmente. O Xorg por design suspende seus clientes durante os comutadores VT, e é por isso que seus clientes parecem "congelar" quando o Vorg do Xorg não está mais ativo. Wayland não, portanto, se os programas que você precisa para continuar executando em um VT em segundo plano suportam o novo protocolo de exibição, use um compositor Wayland em vez do Xorg.

Uma maneira de solucionar esse problema é executar programas gráficos em um servidor VNC local para que eles nunca sejam suspensos. Esta é a solução alternativa que eu uso com mais frequência.


fonte
0

Que processo é responsável por esse comportamento?

O Gerenciador de exibição (DM) é o que você procura. Qualquer um: lightdm, gdm, kdm(kde de idade), sddm(novo kde), xdm...

Posso reconfigurá-lo de alguma forma?

AFAIK, deve ser assim com o servidor X. No entanto, eu costumava pular esse comportamento usando:

  • Ferramentas CLI em outro console virtual TTY
  • Ferramentas CLI como initserviço

Em relação aos fluxos de áudio, quando comecei a usar o GNU / Linux em 2006. Os dispositivos de áudio eram gerenciados separadamente do Display. Agora, as coisas mudaram muito especialmente com os novos dispositivos / portas integrados, como HDMI. Portanto, o servidor Pulse deve estar ciente de alguns eventos de exibição do X. Pelo que me lembro (vou verificar novamente), o servidor Pulse é executado como processo do usuário.

user.dz
fonte
Você pode provar o primeiro ponto? Como exatamente ou onde no código ele faz isso? Existem muitas situações em que a CLI no TTY não é uma opção e os downloads e backups são o verdadeiro problema, o áudio é um problema menor.
Int_ua 6/10/19
0

Você pode iniciar uma screensessão a partir da CLI com bash e, dentro desta sessão, pode iniciar o aplicativo. E agora você pode fechar este terminal sem problemas e recuperar usando o screen -rcomando É mais ou menos isso:

screen bash
rsync -V xxx yyy

E você pode fechar a CLI e retornar o que quiser e fazer:

screen -r

Para confirmar que o trabalho está concluído. Não sei se isso pode funcionar com aplicativos GUI usando um comando como:

nohup your-X-application &
manuti
fonte