首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >只有在通过SSH执行操作时,ghostscript才会获得退出代码1

只有在通过SSH执行操作时,ghostscript才会获得退出代码1
EN

Stack Overflow用户
提问于 2013-11-20 23:17:30
回答 1查看 319关注 0票数 0

当我在我的文档服务器上直接通过后端运行这个命令时,它可以工作并创建一个可打印/正确的组合文档:

代码语言:javascript
运行
复制
cd /docs/processing/ && gs -sDEVICE=pswrite -dNOPAUSE -dBATCH -dSAFER -sOutputFile=combo.ps temp1.ps temp2.ps;

现在真正的任务是,我需要从另一台服务器通过SSH连接到这个文档服务器,以便执行这些命令。所以我试了一下:

代码语言:javascript
运行
复制
ssh myuser@myserver "cd /docs/processing/ && gs -sDEVICE=pswrite -dNOPAUSE -dBATCH -dSAFER -sOutputFile=combo.ps temp1.ps temp2.ps;"

当我这样做时,我得到一个丑陋的ghostscript错误代码,并且它不能工作

代码语言:javascript
运行
复制
GPL Ghostscript 8.54: Unrecoverable error, exit code 1

做了一些挖掘,看起来它与字体有关?Ghostscript在运行时幸运地打印出许多调试语句,我想我找到了问题所在。

当我在我的文档服务器上本地运行,并且没有在其中一个位置进行SSH时,它似乎正在寻找字体在这里(并且成功)

代码语言:javascript
运行
复制
/usr/local/share/ghostscript/8.54/lib/fonts/

当我通过SSH运行时,它看起来是在一个完全不同的区域中搜索字体,因为一些奇怪的原因,我不知道为什么,所以产生了所有的错误:

代码语言:javascript
运行
复制
Can't find (or can't open) font file
/usr/local/share/ghostscript/8.54/Resource/Font/NimbusMonL-Regu.
Can't find (or can't open) font file NimbusMonL-Regu.
Querying operating system for font files...
Didn't find this font on the system!
Unable to substitute for font.
Error: /invalidfont in findfont

TLDR:当我通过SSH登录时,ghostscript正在不同的文件位置查找字体,但没有找到任何字体,这导致ghostscript出错并失败。

有人知道我如何进入并告诉ghostscript在用于查找字体的目录中查找吗?特别是当我使用SSH登录时,我猜是什么时候,因为这似乎是不同之处。

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2013-11-21 00:50:57

听起来您在这两种情况下是以不同的用户身份运行Ghostscript的。这两个用户的环境设置很可能是不同的,特别是GS_FONTPATH,但也可能是其他用户。

您应该检查这两个环境。开始时带有GS_的工作环境中的任何内容都可能需要复制到其他用户的环境中。

此外,您可能想尝试在没有-dSAFER的情况下运行,至少作为实验,因为该开关禁用从“大多数”路径读取(有关-dSAFER的更多信息,请参阅ghostpdl/gs/doc/use.htm )

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20099773

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档