ip netns exec는 메이트 터미널과 그놈 터미널만 시작할 수 없습니까?

ip netns exec는 메이트 터미널과 그놈 터미널만 시작할 수 없습니까?

newns여기서 스크립트를 사용하고 있습니다 .

https://superuser.com/questions/983727/route-only-특이적-traffic-through-vpn

...이 시스템에서는 제외됩니다.

$ mate-about -v
MATE Desktop Environment 1.24.0

$ cat /etc/issue
Ubuntu 20.04.2 LTS \n \l

$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 20.04.2 LTS
Release:    20.04
Codename:   focal

문제는 export XTERM=/usr/bin/mate-terminal해당 스크립트를 변경했고 newns MYNS start재부팅 후 바로 실행하면 "네임스페이스" 터미널이 정상적으로 실행되고 newns MYNS stop"네임스페이스" 터미널이 닫힙니다. 모든 것이 정상입니다. 예상되는.

그런데 내가 그러고 싶었을 때반복하다프로세스 - 터미널이 더 이상 시작되지 않지만 오류는 없습니까? ! 결국 다음 줄로 단순화했습니다(네트워크 네임스페이스 MYNS를 만든 후).

$ sudo /usr/bin/ip netns exec MYNS su -c /usr/bin/mate-terminal myusername

(mate-terminal:12410): dbind-WARNING **: 17:33:10.398: Couldn't connect to accessibility bus: Failed to connect to socket /tmp/dbus-pRWfI7rzyW: Connection refused

가끔씩, 그건가능한한 번 실행하지만 99%의 경우 이 명령을 다시 실행하면 결과가 생성되지 않습니다.

재미있는 부분은 다음과 같습니다. 위의 명령줄을 다음으로 바꾸면 다음 mate-terminal과 같습니다.xterm

sudo /usr/bin/ip netns exec MYNS su -c /usr/bin/xterm myusername

... 효과가있다매번! 하지만 사용하고 싶지 않습니다 xterm. 탭이 있는 터미널이 필요합니다...

재미삼아 여기에서도 VLC를 실행해 보았습니다.

sudo /usr/bin/ip netns exec MYNS su -c /usr/bin/vlc myusername

...그리고 적어도 정상적으로 시작됩니다("vlcpulse 오디오 출력 오류: PulseAudio 서버 연결 실패: 연결이 거부되었습니다"; "dbus 인터페이스 오류: D-Bus 세션 데몬에 연결할 수 없습니다: 소켓에 연결할 수 없습니다"라고 불평하지만). word/tmp/dbus-CRRGy7gvlN: 연결이 거부되었습니다." 등...)

그래서 마침내 설치 하고 사용해 보았습니다 . 다른 메시지를 제외하고 gnome-terminal는 처럼 시작되지도 않았습니다 .mate-terminal

$ sudo /usr/bin/ip netns exec MYNS su -c /usr/bin/gnome-terminal myusername
# Couldn't connect to accessibility bus: Failed to connect to socket /tmp/dbus-pRWfI7rzyW: Connection refused
# Error constructing proxy for org.gnome.Terminal:/org/gnome/Terminal/Factory0: Could not connect: Connection refused

/tmp/dbus-pRWfI7rzyW두 터미널이 모두 시작되면 파일이 계속 반복되지만 다음과 같습니다.

$ sudo ls -la /tmp/dbus*
ls: cannot access '/tmp/dbus*': No such file or directory

...확실히 시스템에 없습니다.

그래서 내 생각에는 이것이 DBUS와 관련이 있을 수 있다는 것입니다. 불행히도 저는 dbus를 실제로 모르거나 이해하지 못합니다.

내 질문은 - 내가 할 수 있는 해결 방법이 있습니까, mate-terminal아니면 gnome-terminal매번 이 상황으로 시작할 수 있습니까?

답변1

의심할 수 있듯이 고급 터미널이 작동하지 않는 이유는 dbus에 연결할 수 없기 때문입니다. 이는 dbus가 새 네임스페이스에서 사용할 수 없는 추상 Unix 소켓을 사용하기 때문입니다(이 항목 참조).질문).

참조된 질문에는 많은 옵션이 있지만, 많은 dbus 세부 정보를 공유할 필요가 없다면(아마도 그렇지 않을 수도 있지만) 가장 간단한 방법은 각 호출에 대해 dbus 세션을 얻는 것입니다.

sudo /usr/bin/ip netns exec MYNS su -c "/usr/bin/dbus-launch /usr/bin/gnome-terminal"

관련 정보