5 # chkconfig: 2345 29 99
6 # description: This script will start and stop the ZFS Event Daemon.
11 # Required-Start: zfs-mount
12 # Required-Stop: zfs-mount
13 # Default-Start: 2 3 4 5
15 # X-Stop-After: zfs-share
16 # Short-Description: ZFS Event Daemon
17 # Description: zed monitors ZFS events. When a zevent is posted, zed
18 # will run any scripts that have been enabled for the
19 # corresponding zevent class.
22 # Released under the 2-clause BSD license.
24 # This script is based on debian/zfsutils.zfs.init from the
25 # Debian GNU/kFreeBSD zfsutils 8.1-3 package, written by Aurelien Jarno.
27 # Source the common init script
28 . @sysconfdir@/zfs/zfs-functions
31 ZED_PIDFILE="@runstatedir@/$ZED_NAME.pid"
33 # shellcheck disable=SC2034
34 extra_started_commands="reload"
36 # Exit if the package is not installed
37 [ -x "$ZED" ] || exit 0
39 # ----------------------------------------------------
43 after zfs-mount localmount
48 check_module_loaded "zfs" || exit 0
50 ZED_ARGS="$ZED_ARGS -p $ZED_PIDFILE"
52 zfs_action "Starting ZFS Event Daemon" zfs_daemon_start \
53 "$ZED_PIDFILE" "$ZED" "$ZED_ARGS"
60 check_module_loaded "zfs" || exit 0
62 zfs_action "Stopping ZFS Event Daemon" zfs_daemon_stop \
63 "$ZED_PIDFILE" "$ZED" "$ZED_NAME" || return "$?"
65 # Let's see if we have any pools imported
66 pools=$("$ZPOOL" list -H -oname)
69 # No pools imported, it is/should be safe/possible to
71 zfs_action "Unloading modules" rmmod zfs zunicode \
72 zavl zcommon znvpair zlua spl
79 check_module_loaded "zfs" || exit 0
81 zfs_daemon_status "$ZED_PIDFILE" "$ZED" "$ZED_NAME"
87 check_module_loaded "zfs" || exit 0
89 zfs_action "Reloading ZFS Event Daemon" zfs_daemon_reload \
90 "$ZED_PIDFILE" "$ZED_NAME"
94 # ----------------------------------------------------
96 if [ ! -e /sbin/openrc-run ]; then
115 [ -n "$1" ] && echo "Error: Unknown command $1."
116 echo "Usage: $0 {start|stop|status|reload|restart}"
123 # Create wrapper functions since Gentoo don't use the case part.
124 depend() { do_depend; }
125 start() { do_start; }
127 status() { do_status; }
128 reload() { do_reload; }