如何在无头服务器安装上使用 pygi Webkit?

如何在无头服务器安装上使用 pygi Webkit?

我有一套可以在笔记本电脑上运行的脚本,只要我启动到 X 会话,它们就可以正常工作,但如果我在无头服务器安装上运行,Gtk 就会出现大量严重故障。我确信解决方案是使用 xvfb,但我找不到一个可行的示例。

非常感谢您的帮助。

答案1

我跟着本文用于在今年早些时候在服务器上运行基于 Firefox 的测试框架。Xvfb 的东西非常简单,我们只需要确保关闭访问控制,这样 X 就不会变得太过分。类似这样的操作应该可以让你开始:

sudo apt-get install xvfb
sudo Xvfb :10 -ac
export DISPLAY=:10
# run your gubbins

不过你应该注意,这不会提供真实桌面会话所具有的一切。如果你遇到这种情况(需要真实桌面),可能值得将其分离到服务器上的虚拟机中。效率稍低一些,但可移植性更强。

亚伯拉罕编辑:
我最终使用了该方法,但我想将其用于 Python 管理任务。我的实现做了同样的事情,但它看起来更像这样:

from django.core.management.base import BaseCommand, CommandError
import subprocess, os
from multiprocessing import Process

def run():
    sub = Process(target=subprocess.call, args=(('Xvfb', ':10', '-ac',), ))
    sub.start()
    env = os.environ.copy()
    env['DISPLAY'] = ":10"
    tasks = ('random','management','commands','thatneedDISPLAY:X')
    for task in tasks:
        p = subprocess.call(['python','manage.py',task],env=env)
    sub.terminate()

class Command(BaseCommand):
    def __init__(self):
        BaseCommand.__init__(self)

    args = 'none'
    help = '''Run all daily tasks.'''

    def handle(self, *args, **options):
        run()

相关内容