我已经定义了一个程序来通过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的环境变量?