Postfix 别名返回“没有这样的文件或目录”对于带有 #!/usr/bin/env ruby​​ shebang 的脚本

发布于 2024-10-13 17:36:42 字数 1459 浏览 8 评论 0原文

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

二手情话 2024-10-20 17:36:42

Postfix 手册 local(8) 介绍了管道别名:

PATH环境变量是
始终重置为系统相关的
默认路径

似乎 /usr/local/bin/ 仅在运行交互式 shell 时位于 PATH 中。您可以调整操作系统中的 PATH 环境变量,但我认为最好将别名更改为以下内容:

%omitted%: "|/usr/local/bin/ruby /var/www/rails/redmine/...

Postfix manual local(8) says about pipe aliases:

The PATH environment variable is
always reset to a system-dependent
default path

It seems that /usr/local/bin/ is only in PATH when running interactive shell. You could tweak the PATH environment variable in your OS, but I think it's better to just change the alias to something like:

%omitted%: "|/usr/local/bin/ruby /var/www/rails/redmine/...

当您通过 sudo 执行命令时,您仍然拥有自己的环境,因此拥有自己的路径。当调用外部程序时,Postfix 的 local 程序将 PATH 重置为最小值(可能是 /bin 和 /usr/bin)。您可以使用 export_environment 配置参数来设置不同的路径。 更多信息

When you execute the command via sudo you still have your own environment, therefore your own path. Postfix's local program resets the PATH to a minimum (probably /bin and /usr/bin) when invoking an external program. You can use export_environment config parameter to set a different path. More information

素手挽清风 2024-10-20 17:36:42

所以我假设 postfix 用户的路径中有 ruby​​。

不,这意味着您发出 sudo 的用户的路径中有 ruby​​。简单的 sudo 不会更改 $PATH。

对于您的问题,最简单的解决方案可能是将实际的 ruby​​ 添加到您的脚本调用中,如下所示(假设您的 ruby​​ 位于 /usr/bin/ruby 中)。

%omitted%: "|/usr/bin/ruby /var/www/rails/redmine/extra/mail_handler/rdm-mailhandler.rb --url %omitted% --key %omitted%"

So I assume the postfix user has ruby in its path.

No, it means that the user you issued the sudo with has ruby in its path. A simple sudo doesn't change the $PATH.

The simplest solution for your issue probably would be to just prepend the actual ruby to your script call, something like the following (assuming your ruby lives in /usr/bin/ruby).

%omitted%: "|/usr/bin/ruby /var/www/rails/redmine/extra/mail_handler/rdm-mailhandler.rb --url %omitted% --key %omitted%"
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文