我正在使用xdm
并且我的~/.Xsession
外观如下:
# <initialization stuff here>
exec openbox
它可以工作,但我注意到当我注销时,Openbox
不会正常终止所有应用程序。尤其Google Chrome
抱怨这一点。
我如何确保等待所有进程退出(就像其他配置一样:Gnome,KDE,Windows......)?
唯一的 (丑陋的) 我发现的解决方案涉及sleep
并kill
融入~/.Xsession
。
答案1
您需要一个会话管理器来正常终止应用程序。 openbox-session
可能会做您想做的事。文档明确指出它不执行保存会话部分,但它可能会执行正常终止部分。 openbox-gnome-session
或者openbox-kde-session
让您在使用 openbox 作为窗口管理器时使用相应的会话管理器。
答案2
以下是我解决的方法,我~/.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
到目前为止,我找不到更好的了。也许我应该使用会话管理器,但我不知道哪一个适合我的情况。