web-dev-qa-db-ja.com

別のXセッションに切り替えると、誰がプログラムを一時停止しますか?

Linuxでは、root以外のすべてのユーザーが同じ扱いを受け、常に並行して実行されると常に思っていました。カーネルは、現在アクティブなXセッションを気にしません。しかし現在、Linuxカーネル、Ubuntu、またはKDEには、アクティブなXセッションにない場合にプログラムを一時停止する、ある種の新しい「機能」があるようです。

ログインする

  1. 私はAliceとしてログインしており、ユーザーBobに切り替えて、このメニューを使用して新しいKDEセッションを開始することにしました。

enter image description here

  1. ボブのスプラッシュ画面が表示され、すぐにアリスに切り替えます。 Ctrl+Alt+F7
  2. 私はいくつかの仕事をし、数分後にボブの新しいセッションに戻ります。 Ctrl+Alt+F8
  3. スプラッシュ画面が続行されず、セッションが読み込まれなかったことがわかりました。今だけそれはロードを続け、約10秒で終了します。

ログアウト

上記とほぼ同じです。ログアウトを開始してすぐに別のアカウントに切り替えましたが、数分後に戻ってもログアウトが完了しませんでした。

音楽

私はアリスとしてmpvで音楽を演奏し始めます。ボブのアカウントに切り替えます。音楽 正常に再生されます 最初は正常ですが、40秒後に停止します。アリスに少し戻ると、音楽が再生され続け、ボブに切り替えると、再び約40秒になります。 Youtubeは15秒後に停止するようです。

質問

これはすべて、アクティブなXセッションにないプロセスを一時停止する何かが起こっていると私に信じさせます。

  1. 誰がこれに責任がありますか?
  2. これをオフにするにはどうすればよいですか?
  3. 一時停止してはいけないプログラムをホワイトリストに登録できますか?

Ubuntu 16.04 LTS(Xenial Xerus)ベースのKDE Neon5とKDE5.36.0を使用しています。

1
problemofficer

誰がこれに責任がありますか?

Linuxではありません。 Ubuntuではありません。 X.Orgではありません。プログラムは中断されません。

プログラム自体が原因です。太古の昔から、プログラムは、ウィンドウシステムがウィンドウの再描画を要求するタイミングを知っているため、現在何かを表示しているかどうかを知ることができました。 Xセッションがアクティブでない場合、再描画は必要ありません。

時間の経過とともに、プログラム(またはKDEライブラリなどのGUIライブラリ)は、CPUサイクル(バッテリ駆動のデバイスではバッテリ寿命を意味します)を節約するために、出力が不要な場合の検出についてますます巧妙になっています。

複雑なレンダリングを行うプロセッサとしてグラフィックカードを使用しているため、プログラムを続行できない場合があります。グラフィックカードが別のセッションの表示でビジー状態の場合、プログラムはそれを使用できません。別のプログラムのウィンドウがアクティブな場合、そのようなプログラムも機能できないため、これに気付くでしょう。

どうすればこれをオフにできますか?
一時停止してはいけないプログラムをホワイトリストに登録できますか?

残念ながら、わかりません。