私は線を引いた:
[[ -z $DISPLAY && $XDG_VTNR -le 4 ]] && exec startx
(Arch Wikiから).xinitrc
コンソールにログインしたら、すぐにXserverを起動します。
セッションを終了するたびに、.xinitrc
ログアウト時に開始されたデーモンは、bash
使用に関係なく終了しませんzsh
。
解析されていないようです.bash_logout/.zlogout
。デフォルトで保存されました。
kill -15 -1 &&
他の人にこの問題が発生したか、解決策がありましたか?
答え1
これexec
組み込みシェルを指定されたプログラムに置き換えます。その後、シェルをロードできなくなります.*logout
。
いずれの場合でも、実行中のシェルは.xinitrc
ログインシェルではないため、どの.*logout
ファイルも実行しません。ただし、いずれにせよ、そのシェルは実行したい場所ではstartx
ありません。xinit
startx
グラフィカルセッションからログアウトした後に何かを実行するには、シェルを実行し続け、その後に実行する項目を指定する必要がありますstartx
。そのexec startx
行が.profile
ログインシェルまたはログインシェルで実行されている同様のファイルにあると仮定すると、Xセッションがアクティブな状態でシェルを実行し続ける必要がありますexit
(GUIセッションの後に対話型シェルが発生しないように)。
if [[ -z $DISPLAY && $XDG_VTNR -le 4 ]]; then
if startx; then
# We just exited an X session.
exit
# If your login shell is bash, it runs ~/.logout at this point.
else
echo >&2 "The X session aborted with an error, dropping to a text shell"
fi
fi