X11은 프로그램의 출력을 tty로 "스트리밍"합니다.

X11은 프로그램의 출력을 tty로 "스트리밍"합니다.

디스플레이 관리자 대신 bspwm간단한 구성 파일을 사용하고 있는데 거기에는 간단한 명령이 하나만 있습니다..xinitrcexec dbus-launch bspwm

dmenu_run예를 들어, ( sxhkd소스 파일 다음에 실행되는) 프로그램을 시작할 때마다 bspwmrc프로그램의 출력은 X 세션을 시작한 tty로 직접 전송됩니다. 예를 들어, 이것을 실행하면 메시지를 무시하는 대신 tty에 메시지를 씁니다(내 이해로 는 쓸 수 있는 파일 설명 echo자가 없어야 하지만 ).echo

나를 가장 혼란스럽게 하는 것은 비록 dmenu_run.왜?

무엇보다도 최악인 것은 일부 프로그램(예: w3m)이 출력을 표시할 뿐만 아니라 X11 세션을 종료한 후에도 계속 대화형 상태를 유지한다는 것입니다.

왜 그리고 어떻게이런 일이 일어날까요? 어떻게 예방할 수 있나요?

답변1

X11은 이런 방식으로 실행될 수 있지만 실제로는 이런 방식으로 실행되어서는 안 됩니다(또는 최소한 X11 디스플레이 서버가 파일 설명자를 유지하고 이를 시작하는 모든 하위 프로세스와 공유한다는 점을 인정해야 합니다).

마음에 들지 않으면 대부분의 다른 사람들처럼 세션 관리자를 통해 X를 시작하거나 X 세션의 stdout/stderr을 파일로 리디렉션하십시오.

관련 정보