xref: /freebsd-src/sys/contrib/openzfs/etc/init.d/zfs-share.in (revision 1719886f6d08408b834d270c59ffcfd821c8f63a)
1eda14cbcSMatt Macy#!@DEFAULT_INIT_SHELL@
2e92ffd9bSMartin Matuska# shellcheck disable=SC2154
3eda14cbcSMatt Macy#
4eda14cbcSMatt Macy# zfs-share     This script will network share zfs filesystems and volumes.
5eda14cbcSMatt Macy#
6eda14cbcSMatt Macy# chkconfig:    2345 30 99
7eda14cbcSMatt Macy# description:  Run the `zfs share -a` or `zfs unshare -a` commands
8eda14cbcSMatt Macy#               for controlling iSCSI, NFS, or CIFS network shares.
9eda14cbcSMatt Macy# probe: true
10eda14cbcSMatt Macy#
11eda14cbcSMatt Macy### BEGIN INIT INFO
12eda14cbcSMatt Macy# Provides:          zfs-share
13eda14cbcSMatt Macy# Required-Start:    $local_fs $network $remote_fs zfs-mount
14eda14cbcSMatt Macy# Required-Stop:     $local_fs $network $remote_fs zfs-mount
15eda14cbcSMatt Macy# Default-Start:     2 3 4 5
16eda14cbcSMatt Macy# Default-Stop:      0 1 6
17eda14cbcSMatt Macy# Should-Start:      iscsi iscsitarget istgt scst @DEFAULT_INIT_NFS_SERVER@ samba samba4 zfs-mount zfs-zed
18eda14cbcSMatt Macy# Should-Stop:       iscsi iscsitarget istgt scst @DEFAULT_INIT_NFS_SERVER@ samba samba4 zfs-mount zfs-zed
19eda14cbcSMatt Macy# Short-Description: Network share ZFS datasets and volumes.
20eda14cbcSMatt Macy# Description:       Run the `zfs share -a` or `zfs unshare -a` commands
21eda14cbcSMatt Macy#                    for controlling iSCSI, NFS, or CIFS network shares.
22eda14cbcSMatt Macy### END INIT INFO
23eda14cbcSMatt Macy#
24eda14cbcSMatt Macy# Released under the 2-clause BSD license.
25eda14cbcSMatt Macy#
2616038816SMartin Matuska# This script is based on debian/zfsutils.zfs.init from the
2716038816SMartin Matuska# Debian GNU/kFreeBSD zfsutils 8.1-3 package, written by Aurelien Jarno.
28eda14cbcSMatt Macy
29eda14cbcSMatt Macy# Source the common init script
30eda14cbcSMatt Macy. @sysconfdir@/zfs/zfs-functions
31eda14cbcSMatt Macy
32eda14cbcSMatt Macy# ----------------------------------------------------
33eda14cbcSMatt Macy
34eda14cbcSMatt Macydo_depend()
35eda14cbcSMatt Macy{
36eda14cbcSMatt Macy	after sysfs zfs-mount zfs-zed
37eda14cbcSMatt Macy	keyword -lxc -openvz -prefix -vserver
38eda14cbcSMatt Macy}
39eda14cbcSMatt Macy
40eda14cbcSMatt Macydo_start()
41eda14cbcSMatt Macy{
42eda14cbcSMatt Macy	check_boolean "$ZFS_SHARE" || exit 0
43eda14cbcSMatt Macy
44eda14cbcSMatt Macy	check_module_loaded "zfs" || exit 0
45eda14cbcSMatt Macy
46eda14cbcSMatt Macy	zfs_action "Sharing ZFS filesystems" "$ZFS" share -a
47eda14cbcSMatt Macy}
48eda14cbcSMatt Macy
49eda14cbcSMatt Macydo_stop()
50eda14cbcSMatt Macy{
51eda14cbcSMatt Macy	check_boolean "$ZFS_UNSHARE" || exit 0
52eda14cbcSMatt Macy
53eda14cbcSMatt Macy	check_module_loaded "zfs" || exit 0
54eda14cbcSMatt Macy
55eda14cbcSMatt Macy	zfs_action "Unsharing ZFS filesystems" "$ZFS" unshare -a
56eda14cbcSMatt Macy}
57eda14cbcSMatt Macy
58eda14cbcSMatt Macy# ----------------------------------------------------
59eda14cbcSMatt Macy
60*1719886fSMartin Matuskaif @IS_SYSV_RC@
61*1719886fSMartin Matuskathen
62eda14cbcSMatt Macy	case "$1" in
63eda14cbcSMatt Macy		start)
64eda14cbcSMatt Macy			do_start
65eda14cbcSMatt Macy			;;
66eda14cbcSMatt Macy		stop)
67eda14cbcSMatt Macy			do_stop
68eda14cbcSMatt Macy			;;
69eda14cbcSMatt Macy		force-reload|reload|restart|status)
70eda14cbcSMatt Macy			# no-op
71eda14cbcSMatt Macy			;;
72eda14cbcSMatt Macy		*)
73eda14cbcSMatt Macy			[ -n "$1" ] && echo "Error: Unknown command $1."
74eda14cbcSMatt Macy			echo "Usage: $0 {start|stop}"
75eda14cbcSMatt Macy			exit 3
76eda14cbcSMatt Macy			;;
77eda14cbcSMatt Macy	esac
78eda14cbcSMatt Macy
79eda14cbcSMatt Macy	exit $?
80eda14cbcSMatt Macyelse
81eda14cbcSMatt Macy	# Create wrapper functions since Gentoo don't use the case part.
82eda14cbcSMatt Macy	depend() { do_depend; }
83eda14cbcSMatt Macy	start() { do_start; }
84eda14cbcSMatt Macy	stop() { do_stop; }
85eda14cbcSMatt Macyfi
86