0

专门调用 gpg。

我很难追踪问题,因为日志没有为这些失败的调用提供任何输出,并且它们在生产控制台中完美运行。

我试过指定gpg的路径:

  system "path/to/gpg --all -my --encryption -options

并确保乘客在我进入控制台的同一用户下运行。我还尝试了反引号和 %x()ing 命令以寻找更详细的响应。

没运气。事实证明,祈祷、舞蹈和暴力同样无用。

4

2 回答 2

1

为了帮助调试此类问题,您可以尝试调用处理问题记录的 bash 脚本,而不是直接调用命令:

#!/bin/bash
# my_gpg_script.sh

set -e
set -u
set -x
set -v

path/to/gpg --all -my --encryption -options > /var/log/whats_happening.log

然后system "my_gpg_script.sh"从红宝石调用。

于 2011-03-28T06:20:13.060 回答
0

Lebreeze 让我走上了正确的道路,但我永远无法让 STDOUT 重定向到我的日志,最终不得不通过跟踪此处建议的整个方法进行调试https://serverfault.com/questions/98994/suppress-gpg -读取密码从文件描述符 0 消息

strace path/to/gpg --all -my --encryption -options 2>>/var/log/whats_happening.log

原来是路径问题。我天真地认为只要环境和用户相同,控制台和应用程序中的 $PATH 就会相同。不是这样。在我的 httpd.conf 文件中添加一些额外的路径修复了我。

SetEnv PATH /this/bin:/that/other/bin:/and/dont/foget/bin
于 2011-03-29T14:48:01.153 回答