Come prevenire i processi di pausa automatica in una sessione utente inattiva?


14

Per un po 'di tempo quando passo tra due sessioni utente, quella inattiva in alcuni casi interromperà l'esecuzione dei processi della GUI. In questo modo sono costretto ad attendere il caricamento di un'altra sessione e non riesco a fare qualcosa in un'altra, perché se cambio e torno dopo un po 'è ancora sullo stesso punto. Il software interessato include rsync, rdiff-backup, processi in background di KDE, Steam avviato nella sessione di Openbox (anche interruzioni del download) e almeno alcuni giochi. VLC non è interessato, almeno salta al tempo necessario dopo il mio ritorno, ma per un momento posso vedere il vecchio frame e il tempo nella sua finestra.

Quale processo è responsabile di tale comportamento? Posso riconfigurarlo in qualche modo?

Aggiornamento: utilizzo di memoria e swap

Qualche ulteriore contesto: l'ironia è che ho suggerito questo comportamento esatto sul vecchio brainstorm.ubuntu.com (ora defunto).


1
@Fabby, non sembra un problema di scambio se questo è ciò che intendi.
int_ua,

2
Sì, è quello che stavo insinuando ... ;-) Ho provato a simulare il comportamento che stai riscontrando: accedi come utente, quindi accedi come utente secondario, avvia un film, [Ctrl] [Alt ] [F7] al primo utente, avvia un findon /, [ctrl] [Alt] [F8] al secondo utente e tutto continua a funzionare ... (anche se il suono del film è disattivato quando si cambia utente). Come si fa test?
Fabby,

1
@int_ua Non conosco Steam in modo specifico, ma ho avuto giochi che contengono codice specifico da mettere in pausa quando si cambia utente ... Non uso KDE quindi penso di non poterti aiutare oltre ... Scusa!
Fabby,

1
Notando sia lo stato di uscita prima che dopo il passaggio a un altro utente e una luce HDD esterna che interrompe tutta l'attività durante un'altra sessione attiva.
int_ua,

2
per rsyncte stai usando verboseper stampare i progressi? hai provato senza di esso + hai provato a inviarlo direttamente in background rsync .... &? Che ne dici nohup rsync .... & ? per la GUI devono sospendere perché esiste una sola risorsa di output, che viene presa da un'altra sessione utente e si interromperanno
:)

Risposte:


1

Ho riscontrato questo problema anche perché passo regolarmente da console a terminali virtuali grafici. Xorg di progettazione sospende i suoi client durante gli switch VT, motivo per cui i suoi client sembrano "bloccarsi" quando il VT di Xorg non è più attivo. Wayland no, quindi se i programmi necessari per rimanere in esecuzione in un VT in background supportano il nuovo protocollo di visualizzazione, utilizzare un compositore Wayland anziché Xorg.

Un modo per aggirare questo problema è eseguire programmi grafici su un server VNC locale in modo che non vengano mai sospesi. Questa è la soluzione alternativa che utilizzo più frequentemente.


0

Quale processo è responsabile di tale comportamento?

Display Manager (DM) è quello che stai cercando. Chiunque: lightdm, gdm, kdm(vecchio kde), sddm(nuova kde), xdm...

Posso riconfigurarlo in qualche modo?

AFAIK, Dovrebbe essere così con X server. Tuttavia, ho usato per saltare quel comportamento usando:

  • Strumenti CLI su un'altra console virtuale TTY
  • Strumenti CLI come initservizio

Per quanto riguarda i flussi audio, quando ho iniziato a utilizzare GNU / Linux nel 2006. I dispositivi audio erano gestiti separatamente da Display. Ora, le cose sono cambiate molto specialmente con i nuovi dispositivi / porte integrati come HDMI. Quindi il server Pulse dovrebbe essere a conoscenza di alcuni eventi di visualizzazione X. Come ricordo (lo ricontrollerò), il server Pulse viene eseguito come processo utente.


Potete per favore dimostrare il primo punto? Come esattamente o dove nel codice fa questo? Ci sono molte situazioni in cui la CLI in TTY non è un'opzione e download e backup sono il vero problema, l'audio è un problema minore.
int_ua,

0

È possibile avviare una screensessione dalla CLI con bash e all'interno di questa sessione è possibile avviare l'applicazione. E ora puoi chiudere questo Terminale senza problemi e ripristinarlo usando il screen -rcomando. È più o meno questo:

screen bash
rsync -V xxx yyy

E puoi chiudere la CLI e restituire quello che vuoi e fare:

screen -r

Per confermare che il lavoro è stato completato. Non so se questo può funzionare con le app della GUI usando un comando come:

nohup your-X-application &
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.