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