[syslog-ng] program destination and init??

Gergely Nagy algernon at balabit.hu
Fri Dec 2 15:01:59 CET 2011


Thomas Wollner <tw at wollner-net.de> writes:

> in 3.1.3 this was a valid config statement:
>
> destination d_raw_firewall_sec {
>   program("`/opt/sec/bin/secStart firewall`"
>   template(t_sec_template));
> };
>
> Have a look at the backticks inside the program.
>
> After changing /bin/dash nach /bin/bash everything worked fine.
>
>
> in 3.3.3. I have to change from backtick to $(...) style:
>
> destination d_raw_firewall_sec {
>   program("$(/opt/sec/bin/secStart firewall)"
>   template(t_sec_template));
> };
>
> This works, but upon restart / reload of syslog-ng the "old" spawned  
> scripts are not receiving the kill / term / hup signals and stay in  
> the process list of the system until killed manually.

The backtick thing is intended, I'm afraid: in syslog-ng 3.3, ` is used
by the configuration parser, therefore, you can't use it as you did
before.

I don't think such usage was anticipated, otherwise this change would've
been mentioned in the NEWS file.

The solution is to use $(...) instead - that's supported by all POSIX
compliant shells I know of, and even some others.

As for the zombie processes, that's an unrelated thing, and a bug
indeed, one which I'm working on.

-- 
|8]



More information about the syslog-ng mailing list