pg_listen: trigger a shell command on a Postgres event
Super fast and lightweight. Written in C using libpq.
Usage
pg_listen postgres://db-uri channel [/path/to/program] [args] # for example, to note when NOTIFY happened on "hello" channel # pg_listen postgres://localhost/postgres hello /bin/echo they said hi # print payload from the channel # (default action when no command is specified) # pg_listen postgres://localhost/postgres fun
Note that pg_listen line-buffers its output, so the payload raised by NOTIFY needs to include a final newline ("\n"). The program won't output anything until a newline is encountered.
-- incorrect NOTIFY foo, 'hi'; -- correct NOTIFY foo, E'hi\n';
Building
Requirements:
- PostgreSQL and libpq.
- pkg-config
$PKG_CONFIG_PATHincluding the directory containinglibpq.pc- C89 and POSIX
Just clone the repo and run:
./configure make