나는 최근에 각 명령에 대한 종료 코드가 포함된 작은 화면 알림을 제공하는 alert
"" 명령을 내 명령에 포함시켰습니다 PROMPT_COMMAND
(장기 실행 작업을 시작할 때 항상 추가하는 것을 잊어버렸기 때문입니다 notify-send
).alert
이것은 마치 매력처럼 작용했지만 약간의 문제를 발견했습니다.
네트워크에 있는 다른 컴퓨터에 로그인하여 연결을 끊으려고 하면 exit
"로그아웃"이라는 메시지가 표시되고 그냥 그대로 유지됩니다. [ctrl]+[c]를 누르면 문제 없이 로컬 세션으로 돌아갑니다. alert
모든 SSH 세션에서 "auto-"를 제거하면 문제가 사라진다는 것을 알았습니다 . 큰 문제는 아니지만 무슨 일이 일어나고 있는지, 그리고 가능하다면 어떻게 고칠 수 있는지 알고 싶습니다.
다음은 명령입니다(내 별칭).
alias alert='notify-send --urgency=low -i "$([ $? -eq 0 ] && echo terminal || echo error)" "$(history 1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"'
이것은 내 .bashrc에 있습니다.
if [[ "$PROMPT_COMMAND" != alert* ]]; then # && ([ -z "$SSH_CLIENT" ] || [ -z "$SSH_TTY" ]); then
PROMPT_COMMAND="alert; $PROMPT_COMMAND"
fi
해당 줄에 주석을 추가하면(remove ; then #
) 로그인 세션은 문제 없이 즉시 종료됩니다(물론 장기 실행 작업이 종료되었다는 알림도 없이).