我一直在使用wkthmltopdf在我的linux web服务器上即时将html转换为pdf文档.该程序最初需要X11或类似的X服务器才能正常运行,但是由于开发人员要求在没有GUI的服务器上运行该程序,我很确定它在静态版本中运行虚拟X服务器.我一直在使用程序的静态(独立)版本,它工作得很好!我将可执行文件放在一个文件夹中,然后运行:
./wkhtmltopdf file1.html file2.pdf
Run Code Online (Sandbox Code Playgroud)
但是我想在系统范围内安装这个程序.我使用了apt-get install wkhtmltopdf(昨天安装),因为我在64位系统上运行,我也需要apt-get install ia32-libs.安装后我可以找到这样的版本:
wkhtmltopdf --version
Run Code Online (Sandbox Code Playgroud)
输出:
Name:
wkhtmltopdf 0.9.9
License:
Copyright (C) 2008,2009 Wkhtmltopdf Authors.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it. There is NO
WARRANTY, to the extent permitted by law.
Authors:
Written by Jakob Truelsen. Patches by Mário Silva, Benoit Garret and Emmanuel
Bouthenot.
Run Code Online (Sandbox Code Playgroud)
现在当我尝试运行通过aptitude安装的程序时,我收到以下错误:
wkhtmltopdf: cannot connect to …Run Code Online (Sandbox Code Playgroud) 我有一个脚本使用java连接到localhost上的端口10.0中显示X11
但我总是得到这个错误
java.lang.InternalError: Can't connect to X11 window server using 'localhost:10.0' as the value of the DISPLAY variable.
at sun.awt.X11GraphicsEnvironment.initDisplay(Native Method)
at sun.awt.X11GraphicsEnvironment.access$200(X11GraphicsEnvironment.java:62)
at sun.awt.X11GraphicsEnvironment$1.run(X11GraphicsEnvironment.java:178)
at java.security.AccessController.doPrivileged(Native Method)
at sun.awt.X11GraphicsEnvironment.<clinit>(X11GraphicsEnvironment.java:142)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:186)
at java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment(GraphicsEnvironment.java:82)
at sun.awt.X11.XToolkit.<clinit>(XToolkit.java:112)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:186)
at java.awt.Toolkit$2.run(Toolkit.java:849)
at java.security.AccessController.doPrivileged(Native Method)
at java.awt.Toolkit.getDefaultToolkit(Toolkit.java:841)
at ij.io.Opener.openJpegOrGif(Opener.java:367)
at ij.io.Opener.openImage(Opener.java:220)
at ij.io.Opener.openImage(Opener.java:249)
at ij.io.Opener.open(Opener.java:116)
at ij.IJ.open(IJ.java:1112)
at ij.macro.Functions.open(Functions.java:2006)
at ij.macro.Functions.doFunction(Functions.java:129)
at ij.macro.Interpreter.doStatement(Interpreter.java:205)
at ij.macro.Interpreter.doBlock(Interpreter.java:515)
at ij.macro.Interpreter.runUserFunction(Interpreter.java:278)
at ij.macro.Interpreter.getFactor(Interpreter.java:1200)
at ij.macro.Interpreter.getTerm(Interpreter.java:1162)
at ij.macro.Interpreter.getExpression(Interpreter.java:1145)
at ij.macro.Interpreter.getBooleanExpression(Interpreter.java:881)
at …Run Code Online (Sandbox Code Playgroud) 有没有办法找出当前会话用户是否正在运行Xserver(在Linux下)?
我开始做的事情如下:
ps -e | grep X
Run Code Online (Sandbox Code Playgroud)
但这并不总是有效
我尝试的另一件事是检查$DISPLAY变量
有没有其他方法来检查这个?
编辑:有人建议使用$ DISPLAY变量,但如果用户摆弄这个变量怎么办?如果他试图做某事并改变这个变量然后当我检查它时,它不再反映系统的准确状态.有没有具体的方法来做到总会得到正确的答案?
我发现它可以以编程方式完成:
#include <X11/Xlib.h>
int main()
{ exit(XOpenDisplay(NULL) ? 0 : 1); }
$ gcc -o xprobe xprobe.c -L/usr/X11R6/lib -lX11
Run Code Online (Sandbox Code Playgroud)
但我正在寻找一种脚本方式.
嘿,我有一个问题让ssh X转发工作.设置是我在sshOSX Yosemite主机上进入我的ubuntu VM.
我已经在OSX上安装了xQuartz,在ubuntu上安装了xauth,我相信我已经在ssh_config文件中设置了所有正确的选项.
我明白了
Warning: untrusted X11 forwarding setup failed: xauth key data not generated
X11 forwarding request failed on channel 0
Run Code Online (Sandbox Code Playgroud)
打开连接时的消息ssh -X,当我尝试运行X应用程序时:
xterm: Xt error: Can't open display:
xterm: DISPLAY is not set
Run Code Online (Sandbox Code Playgroud)
我在我的另一台机器上有相同的设置,除了运行Mavericks并且它工作正常,是否有特定于Yosemite特定的东西我需要担心?
我想问一下如何通过SSH运行X-applications.
我让Linux桌面运行SL6.3与Gnome 2x.在运行CM9的Android平板电脑上,我有适用于Android的Connectbot和X-Server.我可以成功通过SSH使用Connectbot登录Linux框.
我在Linuxbox上的/ etc/ssh/sshd_config中设置了X-forwarding的选项.(X11Forwarding yes).
现在当我使用-X选项,ssh -X username @ hostname:port时,Connectbot重复询问密码,即使我提供了正确的密码,并说 - '身份验证方法'密码'失败.
我怎样才能在平板电脑上通过SSH成功运行X-applications?环境是家庭无线网络.
如何从 Windows 10 的 Bash Shell 运行图形 Linux 桌面应用程序?
首先,我按照此处所示的步骤安装了适用于 Linux 的 Windows 子系统 (WSL) ,如下所示:
(1) 安装了 Windows 10 Pro Insider Preview Build 19619。
(2) 安装了 Ubuntu Linux 发行版。
(3) 将发行版本从 WSL 1 更改为 WSL 2。
其次,使从Windows 10的bash shell的Linux图形桌面应用程序,我也跟着下面的步骤如图所示位置如下:
(4) 我安装了一个X Server,它是Xming
(5) 安装基于 GTK 的图形 vim 编辑器作为测试使用:
sudo apt-get install vim-gtk
(6) 设置我的显示环境变量
export DISPLAY=:0
(7) 启动应用程序
gvim
但是,这并没有使应用程序午餐,我收到以下错误:
E233: cannot open display
Press ENTER or type command to continue
E852: The child process …Run Code Online (Sandbox Code Playgroud) 我正在运行一个java应用程序,它可以创建一些正在执行的操作的可视化显示,同时它正在执行它.但是,我想在一个没有要附加的显示的脚本中运行它.在当前环境中,甚至没有设置DISPLAY环境变量.我试着简单地将我的DISPLAY设置为:0.0.但那不存在.我真的不在乎显示器.我只是希望应用程序以静默方式处理文件.
因为我不能只关闭显示器(不是我的应用程序),所以我不得不试图解决显示需求.
是否有黑洞,我可以发送到显示器?相当于/ dev/null?
我在网上搜索了一下,但我能想到使用的词:"display""null""忽视"等都是两个通用的,让我得到答案.
这是一个更大的脚本的中间,所以我希望输出的其余部分可以使用stdout.
如何在Linux上以编程方式更改显示器亮度?
我正在使用SLES 11.
我很感兴趣如何在.Xresources文件中获得有效的字体名称.我已安装ttf-ms-fonts并希望将终端切换为快递字体.但是这样设置它不起作用
urxvt*font: cour
urxvt*boldFont: courbd
Run Code Online (Sandbox Code Playgroud)
如何指定有效名称?