私はいつもLinuxでは、root以外のすべてのユーザーが同じ扱いを受け、常に並列に実行されると思いました。カーネルは、現在誰のXセッションがアクティブであるかを気にしません。ただし、Linuxカーネル、Ubuntu、またはKDEには、プログラムがアクティブなXセッションにない場合にプログラムを一時停止できる新しい「機能」がいくつかあるようです。
はい
ログイン
- 私はAliceとしてログインし、Bobというユーザーに切り替えて、このメニューを使用して新しいKDEセッションを開始することにしました。
- CtrlBobのスプラッシュ画面が表示され、すぐに++を使用してAltAliceに戻りますF7。
- 私はいくつかのことをし、数分後にCtrl+を使ってAltBobの新しいセッションに戻りましたF8。
- スプラッシュ画面が続かず、セッションがロードされないことがわかりました。これで読み込まれ、約10秒で完了します。
ログアウト
上記とほぼ同じです。ログアウトを開始してすぐに別のアカウントに切り替えましたが、数分後に戻ったときにログアウトがまだ完了していません。
音楽
私はアリスとしてmpvで音楽を再生し始めました。 Bobのアカウントに切り替えます。音楽楽しい時間を過ごしてください起動しますが、約40秒後に停止します。しばらくの間Aliceに戻りましたが、音楽が再生され続け、Bobに切り替えたときに約40秒かかりました。 YouTubeは約15秒後に早く停止するようです。
質問
これはすべて、現在起こっていることがアクティブなXセッションにないプロセスを中断することであると信じています。
- これに対する責任は誰にありますか?
- どうやってドラッグできますか?
- 一時停止しないプログラムをホワイトリストに追加できますか?
私はUbuntu 16.04 LTS(Xenial Xerus)に基づいてKDE Neon 5とKDE 5.36.0を使用しています。
答え1
これに対する責任は誰にありますか?
Linuxではありません。 Ubuntuではありません。 X.Orgではありません。計画は保留されませんでした。
プログラム自体が責任があります。古代から、プログラムはウィンドウシステムがウィンドウを再描画するように要求する時点を知っていたので、現在何かを表示しているかどうかを知ることができました。 X セッションがアクティブでない場合は、再描画する必要はありません。
時間が経つにつれて、プログラム(またはKDEライブラリなどのGUIライブラリ)は、CPUサイクル(バッテリ駆動装置ではバッテリ寿命を意味します)を節約するために出力が不要な時期を検出するために、よりスマートになります。
複雑なレンダリングを実行するためにグラフィックスカードをプロセッサとして使用するため、プログラムを続行できないことがあります。グラフィックカードが別のセッションを表示している場合、プログラムはそのセッションを使用できません。他のプログラムのウィンドウがアクティブになっていると、そのプログラムは実行されないため、これがわかります。
どうやってドラッグできますか?
一時停止しないプログラムをホワイトリストに追加できますか?
残念ながら私は知らない。