The pipe driver opens a named pipe with the specified name and listens for messages. It is used as the native message delivery protocol on HP-UX.

The pipe driver has a single required parameter, specifying the filename of the pipe to open. For the list of available optional parameters, see pipe() source options.

NOTE: If syslog-ng cannot create the pipe, it aborts and produces an error. This could be caused by the lack of a write permission, or missing directory. The latter of the two can be fixed by using the create-dirs(yes) option.

Declaration

pipe(filename);

NOTE: As of syslog-ng Open Source Edition 3.0.2, pipes are created automatically. In earlier versions, you had to create the pipe using the mkfifo(1) command.

Pipe is very similar to the file() driver, but there are a few differences, for example, pipe() opens its argument in read-write mode, therefore it is not recommended to be used on special files like /proc/kmsg.

CAUTION:

  • It is not recommended to use pipe() on anything else than real pipes.

  • By default, syslog-ng OSE uses the flags(no-hostname) option for pipes,
    meaning that syslog-ng OSE assumes that the log messages received from the
    pipe do not contain the hostname field. If your messages do contain the hostname field, use flags(expect-hostname).

Example: Using the pipe() driver

source s_pipe {
    pipe("/dev/pipe" pad-size(2048));
};

Updated: