mirror_zfs/cmd/zed/zed.d
Antonio Russo 55d80e651a systemd mount generator and tracking ZEDLET
zfs-mount-generator implements the "systemd generator" protocol,
producing systemd.mount units from the cached outputs of zfs list,
during early boot, integrating with systemd.

Each pool has an indpendent cache of the command

  zfs list -H -oname,mountpoint,canmount -tfilesystem -r $pool

which is kept synchronized by the ZEDLET

  history_event-zfs-list-cacher.sh

Datasets not in the cache will be loaded later in the boot process by
zfs-mount.service, including pools without a cache.

Among other things, this allows for complex mount hierarchies.

Reviewed-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
Reviewed-by: Richard Laager <rlaager@wiktel.com>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Antonio Russo <antonio.e.russo@gmail.com>
Closes #7329
2018-04-06 14:11:09 -07:00
..
.gitignore systemd mount generator and tracking ZEDLET 2018-04-06 14:11:09 -07:00
all-debug.sh Allow to limit zed's syslog chattiness 2018-03-06 15:41:52 -08:00
all-syslog.sh Allow to limit zed's syslog chattiness 2018-03-06 15:41:52 -08:00
data-notify.sh Add a statechange notify zedlet 2016-11-10 13:52:59 -08:00
generic-notify.sh Replace "email" ZEDLETs with "notify" ZEDLETs 2015-04-27 12:08:07 -07:00
history_event-zfs-list-cacher.sh.in systemd mount generator and tracking ZEDLET 2018-04-06 14:11:09 -07:00
pool_import-led.sh Enclosure LED fixes 2017-02-10 16:09:45 -08:00
README Fix broken URL 2017-02-15 11:15:38 -08:00
resilver_finish-notify.sh OpenZFS 5997 - FRU field not set during pool creation and never updated 2016-08-12 13:06:48 -07:00
resilver_finish-start-scrub.sh Add scrub after resilver zed script 2018-02-23 11:38:05 -08:00
scrub_finish-notify.sh OpenZFS 5997 - FRU field not set during pool creation and never updated 2016-08-12 13:06:48 -07:00
statechange-led.sh Enable shellcheck to run for select scripts 2017-03-09 10:20:15 -08:00
statechange-notify.sh Enable shellcheck to run for select scripts 2017-03-09 10:20:15 -08:00
vdev_attach-led.sh Fix statechange-led.sh & unnecessary libdevmapper warning 2016-10-25 11:05:30 -07:00
vdev_clear-led.sh Multipath autoreplace, control enclosure LEDs, event rate limiting 2016-10-19 12:55:59 -07:00
zed-functions.sh Allow to limit zed's syslog chattiness 2018-03-06 15:41:52 -08:00
zed.rc Allow to limit zed's syslog chattiness 2018-03-06 15:41:52 -08:00

Shell scripts are the recommended choice for ZEDLETs that mostly call
other utilities and do relatively little data manipulation.

Shell scripts MUST work on both bash and dash.

Shell scripts MUST run cleanly through ShellCheck:
  http://www.shellcheck.net/

General functions reside in "zed-functions.sh".  Use them where applicable.

Additional references that may be of use:

  Google Shell Style Guide
  https://github.com/google/styleguide/blob/gh-pages/shell.xml

  Dash as /bin/sh
  https://wiki.ubuntu.com/DashAsBinSh

  Common shell script mistakes
  http://www.pixelbeat.org/programming/shell_script_mistakes.html

  Filenames and Pathnames in Shell: How to do it Correctly
  http://www.dwheeler.com/essays/filenames-in-shell.html

  Autoconf: Portable Shell Programming
  https://www.gnu.org/software/autoconf/manual/autoconf.html#Portable-Shell

Please BE CONSISTENT with the existing style, check for errors,
minimize dependencies where possible, try to be portable,
and comment anything non-obvious.  Festina lente.