Bagaimana mencegah proses jeda otomatis dalam sesi pengguna yang tidak aktif?

14

Untuk sementara sekarang ketika saya beralih di antara dua sesi pengguna, sesi yang tidak aktif dalam beberapa kasus akan berhenti menjalankan proses GUI. Dengan cara ini saya terpaksa menunggu sesi lain dimuat dan tidak dapat melakukan sesuatu di sesi lain, karena jika saya beralih dan kembali setelah beberapa saat, ia masih berada di titik yang sama. Perangkat lunak yang terpengaruh meliputi rsync, rdiff-backup, proses latar belakang KDE, Steam diluncurkan dalam sesi Openbox (bahkan pengunduhan berhenti) dan setidaknya beberapa permainan. VLC tidak terpengaruh, setidaknya itu melompati ke waktu yang diperlukan setelah saya kembali, tetapi untuk sesaat saya dapat melihat bingkai lama dan waktu di jendela itu.

Proses apa yang bertanggung jawab atas perilaku semacam itu? Bisakah saya mengkonfigurasi ulang entah bagaimana?

Pembaruan: Memori dan Penggunaan Swap

Beberapa konteks tambahan: Ironinya adalah saya menyarankan perilaku yang tepat ini di brainstorm.ubuntu.com lama (sekarang mati).

int_ua
sumber
1
@ Fabby selesai, itu tidak terlihat seperti masalah swap jika itu yang Anda maksudkan.
int_ua
2
Ya, itulah yang saya maksudkan ... ;-) Saya telah mencoba mensimulasikan perilaku yang Anda alami: masuk sebagai pengguna, lalu masuk sebagai pengguna sekunder, mulai film, [Ctrl] [Alt ] [F7] untuk pengguna pertama, memulai findpada /, [ctrl] [Alt] [F8] untuk pengguna kedua dan semuanya terus berjalan ... (meskipun suara film ini terdengar saat beralih pengguna.) Bagaimana kamu menguji?
Fabby
1
@int_ua Saya tidak tahu tentang steam secara khusus, tapi saya punya game yang berisi kode khusus untuk dijeda ketika berpindah pengguna ... Saya tidak menggunakan KDE jadi saya pikir saya tidak dapat membantu Anda lebih jauh ... Maaf!
Fabby
1
Dengan mencatat kondisi output sebelum dan sesudah beralih ke pengguna lain dan dengan lampu HDD eksternal menghentikan semua aktivitas selama sesi lain sedang aktif.
int_ua
2
untuk rsyncAnda gunakan verboseuntuk mencetak kemajuan? sudahkah Anda mencobanya tanpa + sudahkah Anda mencoba mengirimkannya langsung ke latar belakang rsync .... &? Bagaimana dengan nohup rsync .... & ? untuk GUI mereka harus menangguhkan karena hanya ada satu sumber daya keluaran dan itu diambil oleh sesi pengguna lain dan mereka akan berhenti sebentar
:)

Jawaban:

1

Saya mengalami masalah ini juga karena saya beralih antara konsol dan terminal virtual grafis secara teratur. Xorg by design menangguhkan kliennya selama sakelar VT, itulah mengapa kliennya tampak "membeku" ketika VT Xorg tidak lagi aktif. Wayland tidak, jadi jika program yang Anda perlukan agar tetap berjalan di latar belakang VT mendukung protokol tampilan baru, gunakan komposer Wayland alih-alih Xorg.

Salah satu cara untuk mengatasi masalah ini adalah menjalankan program grafis pada server VNC lokal sehingga tidak pernah ditangguhkan. Ini adalah solusi yang paling sering saya gunakan.


sumber
0

Proses apa yang bertanggung jawab atas perilaku semacam itu?

Display Manager (DM) adalah yang Anda cari. Siapapun: lightdm, gdm, kdm(kde tua), sddm(kde baru), xdm...

Bisakah saya mengkonfigurasi ulang entah bagaimana?

AFAIK, Seharusnya begitu dengan X server. Namun, saya biasa melewatkan perilaku itu menggunakan:

  • Alat CLI pada konsol virtual lain TTY
  • Alat CLI sebagai initlayanan

Mengenai aliran audio, ketika saya mulai menggunakan GNU / Linux pada tahun 2006. Perangkat audio dikelola secara terpisah dari Display. Sekarang, banyak hal berubah secara khusus dengan perangkat / port terintegrasi baru seperti HDMI. Jadi server Pulse harus mengetahui beberapa peristiwa tampilan X. Seingat saya (saya akan periksa kembali ini), Pulse server dijalankan sebagai proses pengguna.

user.dz
sumber
Bisakah Anda membuktikan poin pertama? Bagaimana tepatnya atau di mana dalam kode itu melakukan ini? Ada banyak situasi di mana CLI di TTY bukan opsi dan unduhan dan cadangan adalah masalah sebenarnya, audio adalah masalah kecil.
int_ua
0

Anda dapat meluncurkan screensesi dari CLI dengan bash dan di dalam sesi ini Anda dapat meluncurkan aplikasi. Dan sekarang Anda dapat menutup Terminal ini tanpa masalah dan memulihkan menggunakan screen -rperintah. Apakah lebih atau kurang ini:

screen bash
rsync -V xxx yyy

Dan Anda dapat menutup CLI dan mengembalikan apa pun yang Anda inginkan dan lakukan:

screen -r

Untuk mengkonfirmasi pekerjaan sudah selesai. Saya tidak tahu apakah ini dapat bekerja dengan aplikasi GUI menggunakan perintah seperti:

nohup your-X-application &
manuti
sumber