pg_listen: trigger a shell command on a Postgres event
Super fast and lightweight. Written in C using libpq.
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';
Just clone the repo and run
make. The makefile is compatible with BSD and GNU
Make and requires only that libpq be installed on the system.
If you use NixOS you can run
nix-shell to build it.
If you installed PostgreSQL on Mac using homebrew or Macports, note that
pkg-config is not installed by default and needs to be installed by running
brew install pkg-config prior to running
make. Additionally you may need to
$PKG_CONFIG_PATH and add the directory containing
libpq.pc for your