Para a maioria dos comandos, um wrapper terá que ser escrito, pois o Syslog-ng só executará o comando quando for iniciado. Isso significa que o comando deve ser efetivamente um daemon sempre aceitando a entrada de stdin.
Isso é simples embora ...
#!/bin/dash
while read line
do
/execute/my/app $line
done
infelizmente este script não funciona para mim, provavelmente porque não sabe qual display usar. Mas se o seu script não precisar de um servidor X, um formato simples como esse deve funcionar para você.
Embora isto não seja de nenhuma maneira útil devido ao fato de que o Syslog-ng iniciará apenas o programa na inicialização, eu achei o fato de que xargs
pode criar argumentos posicionais a partir da entrada padrão interessante.
echo 'test' | /usr/bin/xargs -I '{}' /usr/bin/kdialog --passivepopup '{}' 2