我正在使用自定义传输来处理传入的邮件。 它用于订阅和取消订阅某个频道。
twailer unix - nn - - pipe flags=FR user=twailer argv=/home/twailer/twailer/bin/twailer
twailer二进制文件是一个Javascript文件,应该用节点parsing,所以我添加了shebang
#!/usr/bin/env node
但是这不起作用,因为$PATH不是由pipe命令导出的。 根据手册,我可以指定哪些环境variables在main.cf中的export_environment设置中export_environment ,所以我也这样做了。
export_environment = TZ MAIL_CONFIG LANG PATH=/usr/local/bin:/usr/bin:/bin
但它仍然不起作用。 所以我用一个shell脚本replace了我的二进制文件,输出当前的$PATH到stderr,我得到了
Command output: /usr/bin:/bin
这显然不是我configuration的。
关于如何让我的$ PATHvariables的任何想法通过?
不要尝试做pipe道(8)做一些事情,不要考虑适应它所支持的事情:
twailer unix - nn - - pipe flags=FR user=twailer argv="/usr/bin/node /home/twailer/twailer/bin/twailer"
将“/ usr / bin / node”replace为二进制文件的真实path。
至于你在PATH中的黑客问题:如文件所述,
argv =命令…(必需)要执行的命令。 这必须被指定为最后的命令属性。 该命令是直接执行的,即不通过shell命令解释器来解释shell元字符。