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

问题描述 投票:1回答:1

我已经定义了一个程序来通过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”,但在rsyslog的omprog模块触发时则不打印任何内容。

print(os.environ['ENV_FOO'])

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

rsyslog
1个回答
1
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.