在远程Linux上后台运行Xvfb

5

我遇到了与远程Linux上的Xvfb相关的问题。当我运行以下命令时

Xvfb :99 &

我在命令行上看到了以下信息: Initializing built-in extension Generic Event Extension Initializing built-in extension SHAPE Initializing built-in extension MIT-SHM Initializing built-in extension XInputExtension Initializing built-in extension XTEST Initializing built-in extension BIG-REQUESTS Initializing built-in extension SYNC Initializing built-in extension XKEYBOARD Initializing built-in extension XC-MISC Initializing built-in extension SECURITY Initializing built-in extension XINERAMA Initializing built-in extension XFIXES Initializing built-in extension RENDER Initializing built-in extension RANDR Initializing built-in extension COMPOSITE Initializing built-in extension DAMAGE Initializing built-in extension MIT-SCREEN-SAVER Initializing built-in extension DOUBLE-BUFFER Initializing built-in extension RECORD Initializing built-in extension DPMS Initializing built-in extension Present Initializing built-in extension X-Resource Initializing built-in extension XVideo Initializing built-in extension XVideo-MotionCompensation Initializing built-in extension SELinux Initializing built-in extension GLX 我需要使用ctrl+c暂停它,但它仍会在后台运行。我正在编写一个shell脚本来自动化它,但这个命令Xvfb :99 &无法在后台运行!请问有关此问题的任何帮助?
我的shell脚本:
system("sudo yum -y install Xvfb");
system("sudo yum -y install firefox");
system("sudo yum -y install ImageMagick");
system("Xvfb :99 &");
system("export DISPLAY=:99");

我不认为你想要使用shell脚本来完成这个任务,而是创建一个系统服务来管理Xvfb。在谷歌上搜索“Xvfb守护进程”会给你很多例子和技巧。 - emcconville
1个回答

11

不要使用 &,而是尝试使用以下方式:
在输入 Xvfb :99 后执行 ctrl+z 命令
然后输入 bg 将进程发送到后台运行,接下来进程将一直在后台运行。
编辑:以下内容也应该有帮助:

nohup Xvfb :99 > /dev/null 2>&1 &

或者简单地使用nohup Xvfb :99 &


哦,你希望在脚本中运行这个..那么不要按ctrl+z来停止xvfb,而是让脚本自己执行..这样脚本就可以在后台运行了。 - Mrunal Gosar
所以一旦您发出了./script.sh,立即按下ctrl+z键,这应该会暂时停止进程,然后在提示符上键入bg。 - Mrunal Gosar
你会考虑接受这个作为答案吗?这样寻找类似问题的其他人就可以找到一个简单的解决方案了。 - Mrunal Gosar
抱歉伙计!之前忘了! - Abhishek Tripathi
我希望有一个命令行标志代替。在我的脚本中使用&后还需要等待,这很混乱。 - Sridhar Sarnobat

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接