ip netns execは合致端末とGNOME端末だけを起動できませんか?

ip netns execは合致端末とGNOME端末だけを起動できませんか?

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"

おすすめ記事