将环境变量传递给子进程,由rsyslog omprog模块启动

时间:2017-03-24 21:35:32

标签: rsyslog

我已经定义了一个程序来通过rsyslog文件中的omprog模块处理日志,如下所示:

module(load="omprog")
if $programname == 'myprogram' and getenv('ENV_FOO') == 'foo_value' then {
    action(type="omprog" binary="/pathto/my_log_handler.py")
}

我已经验证rsyslog继承了环境变量ENV_FOO并启动了二进制文件,但是运行my_log_handler.py的子进程似乎没有继承环境变量。我已经测试了包含my_log_handler.py中的以下代码段正确打印了' foo_value'从shell运行时,但在由rsyslog的omprog模块触发时不打印任何内容。

print(os.environ['ENV_FOO'])

有没有办法让rsyslog触发的二进制文件的omprog模块继承rsyslog的环境变量?

1 个答案:

答案 0 :(得分:1)

这是added in rsyslog v8.38(即,从该版本开始,环境已传递给子进程)。