web-dev-qa-db-ja.com

スタンドアロンのウィンドウマネージャーで〜/ .Xsessionを構成して、セッションを正常に終了する適切な方法

xdmを使用していますが、~/.Xsessionは次のようになります。

# <initialization stuff here>

exec openbox

動作しますが、ログアウトしたときにOpenboxがすべてのアプリケーションを正常に強制終了しないことに気付きました。特にGoogle Chromeはそれについて不平を言っています。

すべてのプロセスが終了するのを確実に待つにはどうすればよいですか(他の構成と同じように:Gnome、KDE、Windows ...)?

私が見つけた唯一の(醜い)解決策は、sleepkill~/.Xsessionに含めることです。

4
cYrus

アプリケーションを正常に強制終了するには、セッションマネージャが必要です。 openbox-sessionあなたが望むことをするかもしれません。ドキュメントには、セッションの保存部分は実行しないと明示的に記載されていますが、正常に強制終了する部分は実行される可能性があります。 openbox-gnome-sessionまたはopenbox-kde-sessionは、ウィンドウマネージャーとしてopenboxを使用しながら、それぞれのセッションマネージャーを使用できるようにします。

1
Karl Bielefeldt

これが私が解決した方法です、私はこのように~/.Xsessionを編集しました:

# <initialization stuff here>

openbox-session &
WM_PID=$!

sleep 0.5 # time needed to start openbox

# <autostart applications here>

wait $WM_PID

for i in `ps -u $USER -o pid= | grep -v $$` ; do
    kill $i
done

sleep 1 # grace time

今ではこれ以上良いものは見つかりません。セッションマネージャーを使用する必要があるかもしれませんが、どちらが私の場合に適しているかわかりません。

1
cYrus