-1

後置エイリアスは次のようになります。

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

返されたバウンス メッセージには、

「コマンドはステータス 127 で終了しました」

「コマンド出力: /usr/bin/env: ruby​​: No such file or directory」

走った

sudo -u postfix /usr/bin/env ruby -v

そして戻ってきた

ruby 1.8.7 (2009-06-12 patchlevel 174) [x86_64-linux], MBARI 0x6770, Ruby Enterprise Edition 2009.10

したがって、postfix ユーザーのパスに ruby​​ があると仮定します。

シバンを /usr/local/bin/ruby に変更しましたが、動作しますが、コードをチェックアウトしたプロジェクトの svn と一致させたいと思います。

4

3 に答える 3

3

Postfixマニュアルlocal(8)は、パイプエイリアスについて次のように述べています。

PATH環境変数は、常にシステム依存のデフォルトパスにリセットされます

/ usr / local / bin /は、インタラクティブシェルを実行している場合にのみPATHに含まれているようです。OSのPATH環境変数を微調整することもできますが、エイリアスを次のように変更する方がよいと思います。

%omitted%: "|/usr/local/bin/ruby /var/www/rails/redmine/...
于 2011-01-24T19:36:46.857 に答える
1

したがって、postfix ユーザーのパスに ruby​​ があると仮定します。

いいえ、sudo を発行したユーザーのパスに ruby​​ があることを意味します。単純な sudo では $PATH は変更されません。

問題の最も簡単な解決策は、おそらく次のように実際のルビをスクリプト呼び出しの先頭に追加することです (ルビが にあると仮定します/usr/bin/ruby)。

%omitted%: "|/usr/bin/ruby /var/www/rails/redmine/extra/mail_handler/rdm-mailhandler.rb --url %omitted% --key %omitted%"
于 2011-01-24T19:48:32.853 に答える
1

経由でコマンドを実行すると、sudoまだ独自の環境があるため、独自のパスがあります。Postfix のlocalプログラムは、外部プログラムを呼び出すときに PATH を最小 (おそらく /bin と /usr/bin) にリセットします。export_environmentconfig パラメータを使用して、別のパスを設定できます。詳しくは

于 2011-01-24T19:45:49.987 に答える