aboutsummaryrefslogtreecommitdiffstats
path: root/etc/init.d/zfs-share.in
diff options
context:
space:
mode:
Diffstat (limited to 'etc/init.d/zfs-share.in')
-rwxr-xr-xetc/init.d/zfs-share.in93
1 files changed, 93 insertions, 0 deletions
diff --git a/etc/init.d/zfs-share.in b/etc/init.d/zfs-share.in
new file mode 100755
index 000000000..70439151b
--- /dev/null
+++ b/etc/init.d/zfs-share.in
@@ -0,0 +1,93 @@
+#!@SHELL@
+#
+# zfs-share This script will network share zfs filesystems and volumes.
+#
+# chkconfig: 2345 30 99
+# description: Run the `zfs share -a` or `zfs unshare -a` commands
+# for controlling iSCSI, NFS, or CIFS network shares.
+# probe: true
+#
+### BEGIN INIT INFO
+# Provides: zfs-share
+# Required-Start: $local_fs $network $remote_fs zfs-mount
+# Required-Stop: $local_fs $network $remote_fs zfs-mount
+# Default-Start: 2 3 4 5
+# Default-Stop: 0 1 6
+# Should-Start: iscsi iscsitarget istgt scst @NFS_SRV@ samba samba4 zfs-mount
+# Should-Stop: iscsi iscsitarget istgt scst @NFS_SRV@ samba samba4 zfs-mount
+# Short-Description: Network share ZFS datasets and volumes.
+# Description: Run the `zfs share -a` or `zfs unshare -a` commands
+# for controlling iSCSI, NFS, or CIFS network shares.
+### END INIT INFO
+#
+# Released under the 2-clause BSD license.
+#
+# The original script that acted as a template for this script came from
+# the Debian GNU/Linux kFreeBSD ZFS packages (which did not include a
+# licensing stansa) in the commit dated Mar 24, 2011:
+# https://github.com/zfsonlinux/pkg-zfs/commit/80a3ae582b59c0250d7912ba794dca9e669e605a
+
+# Source the common init script
+. @sysconfdir@/zfs/zfs-functions
+
+# ----------------------------------------------------
+
+do_depend()
+{
+ after sysfs zfs-mount
+ keyword -lxc -openvz -prefix -vserver
+}
+
+do_start()
+{
+ case "$ZFS_SHARE" in
+ [Oo][Ff][Ff]|[Nn][Oo]|''|0)
+ exit 0
+ ;;
+ esac
+
+ check_module_loaded || exit 0
+
+ zfs_action "Sharing ZFS filesystems" "$ZFS" share -a
+}
+
+do_stop()
+{
+ case "$ZFS_UNSHARE" in
+ [Oo][Ff][Ff]|[Nn][Oo]|''|0)
+ exit 0
+ ;;
+ esac
+
+ check_module_loaded || exit 0
+
+ zfs_action "Unsharing ZFS filesystems" "$ZFS" unshare -a
+}
+
+# ----------------------------------------------------
+
+if [ ! -e /etc/gentoo-release ]; then
+ case "$1" in
+ start)
+ do_start
+ ;;
+ stop)
+ do_stop
+ ;;
+ force-reload|reload|restart|status)
+ # no-op
+ ;;
+ *)
+ [ -n "$1" ] && echo "Error: Unknown command $1."
+ echo "Usage: $0 {start|stop}"
+ exit 3
+ ;;
+ esac
+
+ exit $?
+else
+ # Create wrapper functions since Gentoo don't use the case part.
+ depend() { do_depend; }
+ start() { do_start; }
+ stop() { do_stop; }
+fi