我有一个远程服务器,我想在我已经设置的网络命名空间内启动一些gui应用程序。我正在使用socat转发x会话。
eog
但是,如果我尝试启动DISPLAY=:1111 eog
I No protocol specified
** (eog:9498): WARNING **: Could not open X display
Cannot open display:
Run 'eog --help' to see a full list of available command line options.
它失败并显示以下消息:
socat
Instruction* someInst;
IRBuilder<> B(someInst);
Value* condition = B.CreateICmp(CmpInst::ICMP_UGT, someInst, someValue);
BasicBlock* thenBB = BasicBlock::Create(*ctx, "then");
BasicBlock* elseBB = BasicBlock::Create(*ctx, "else");
B.CreateCondBr(condition, thenBB, elseBB);
B.SetInsertPoint(thenBB);
//insert stuff
B.SetInsertPoint(elseBB);
//insert stuff
会立即退出。
答案 0 :(得分:1)
嗯,花了一天时间,但我想办法做到这一点。
我最终使用Xpra在远程服务器上启动X服务器并在我的本地计算机上连接到它。
在本地运行xhost +
并在远程服务器的fork
调用中添加socat
标志后,socat方法也有效。但是,它从来没有始终如一地工作(应用程序在启动期间挂起的机会很多)。它从未与像Firefox这样的更复杂的应用程序一起使用。在尝试使用dbus时,应用程序指向应用程序挂起。