X11 Forwarding 및 SSH를 통해 다양한 Gnome 응용 프로그램을 실행하려고합니다. 일부 응용 프로그램에서는 'dbus-launch'응용 프로그램이 먼저 생성됩니다. 문제는 X 응용 프로그램이 종료 될 때 dbus-launch가 닫히지 않으므로 SSH 세션을 제대로 종료하기 전에 종료해야한다는 것입니다.
문제는 X / Gnome 응용 프로그램이 기본 메시지 버스 데몬과 연결할 수 없으므로 자체 복사본을 시작해야한다는 것입니다. 이 문제를 어떻게 해결할 수 있습니까? 아니면 내가 무엇을 놓치고 있습니까?
다음은 예입니다. X11 전달을 사용하도록 설정했는데 모두 정상적으로 작동하는 것 같습니다.
[me@host ~]$ gnome-calculator &
[1] 4803
(여기서 gcalctool 프로그램이 시작되고 X 서버 제거 (Xming)에 표시됩니다)
[me@host ~]$ ps
PID TTY TIME CMD
4706 pts/0 00:00:00 bash
4803 pts/0 00:00:00 gnome-calculator
4807 pts/0 00:00:00 dbus-launch
4870 pts/0 00:00:00 ps
(이제 원격 세션에서 gcalctool 앱을 닫은 후)
[me@host ~]$ ps
PID TTY TIME CMD
4706 pts/0 00:00:00 bash
4807 pts/0 00:00:00 dbus-launch
4898 pts/0 00:00:00 ps
dbus-launch는 여전히 활성화되어 있습니다. 최악의 경우 SSH 연결이 끊길 때까지 SSH 연결이 제대로 종료되지 않습니다.
다음과 같이 시스템 전체 메시지 데몬이 실행 중입니다.
[me@host ~]$ ps ax
4696 ? Ssl 0:00 dbus-daemon --system
내가 여기서 무엇을 놓치고 있습니까? 나는이 행동을 전에 본 적이 없다. 아마도 메시지 버스 데몬에 연결할 수있는 응용 프로그램 만 본 적이 있습니까? / etc / dbus-1에서 답을 찾았지만 무엇을 찾아야할지 모르겠습니다.
도움을 주셔서 감사합니다.
[편집하다]
OK, 나는 일반적인 문제가 있음을 깨닫고 있습니다. 이것은 일반적인 동작이지만 좋은 해결책이없는 것 같습니다. tty에서 dbus-launch가 여전히 활성화되어 있기 때문에 SSH 중단이 발생했습니다. 그러나 dbus-launch가 조용히 일어날 수있는 좋은 방법은없는 것 같습니다.
/etc/X11/xinit/xinitrc.d/00-start-message-bus.sh를 보면 "정상적인"X 세션에서 발생하는 상황에 대한 힌트를 얻을 수 있습니다. 물론 X 응용 프로그램을 원격 X 서버로 호출 할 때는 작동하지 않습니다.
임시 해결 방법으로 이것을 .bash_logout에 추가했습니다.
# ~/.bash_logout
pkill -u $USER -t `tty | cut -d '/' -f 3,4` dbus-launch
이것은 SSH 세션을 닫을 수 있지만, 기분이 좋지 않습니다. 더 나은 솔루션이 있습니까? dbus를 방해하지 않고 원격 X11 응용 프로그램을 실행하는 올바른 방법은 무엇입니까?