Warning: This document is for an old version of zrepl. The main version is master.


CLI Overview


To avoid duplication, the zrepl binary is self-documenting: invoke any subcommand at any level with the --help flag to get information on the subcommand, available flags, etc.

Subcommand Description
zrepl daemon run the daemon, required for all zrepl functionality
zrepl control control / query the daemon
zrepl control status show job activity / monitoring (--format raw)
zrepl test test configuration, try pattern syntax, dry run pruning policy, etc.
zrepl stdinserver see ssh+stdinserver Transport

zrepl daemon

All actual work zrepl does is performed by a daemon process. Logging is configurable via the config file. Please refer to the logging documention.

When installating from a package, the package maintainer should have provided an init script / systemd.service file. You should thus be able to start zrepl daemon using your init system.

Alternatively, or for running zrepl in the foreground, simply execute zrepl daemon. Note that you won’t see much output with the default logging configuration:


Make sure to actually monitor the error level output of zrepl: some configuration errors will not make the daemon exit.

Example: if the daemon cannot create the ssh+stdinserver Transport sockets in the runtime directory, it will emit an error message but not exit because other tasks such as periodic snapshots & pruning are of equal importance.


The daemon handles SIGINT and SIGTERM for graceful shutdown. Graceful shutdown means at worst that a job will not be rescheduled for the next interval. The daemon exits as soon as all jobs have reported shut down.