aboutsummaryrefslogtreecommitdiff
path: root/util
diff options
context:
space:
mode:
authorGravatar Miklos Szeredi <miklos@szeredi.hu>2006-10-01 13:46:02 +0000
committerGravatar Miklos Szeredi <miklos@szeredi.hu>2006-10-01 13:46:02 +0000
commit4003dfa31341e5584375c1423d223f099a6049c7 (patch)
tree7cd8a42bc1666788a7f2c8b29265a4f8b7c585e1 /util
parent0740785ee4ecd3edf07b0f311017ea00cb63698b (diff)
Add init script
Diffstat (limited to 'util')
-rw-r--r--util/Makefile.am14
-rwxr-xr-xutil/init_script53
2 files changed, 66 insertions, 1 deletions
diff --git a/util/Makefile.am b/util/Makefile.am
index 8e8db2a..d963e81 100644
--- a/util/Makefile.am
+++ b/util/Makefile.am
@@ -16,14 +16,21 @@ install-exec-hook:
mknod $(DESTDIR)/dev/fuse -m 0666 c 10 229; \
fi
-EXTRA_DIST = mount.fuse udev.rules
+EXTRA_DIST = mount.fuse udev.rules init_script
MOUNT_FUSE_PATH = @MOUNT_FUSE_PATH@
UDEV_RULES_PATH = @UDEV_RULES_PATH@
+INIT_D_PATH = @INIT_D_PATH@
install-exec-local:
$(mkdir_p) $(DESTDIR)$(MOUNT_FUSE_PATH)
$(INSTALL_PROGRAM) $(srcdir)/mount.fuse $(DESTDIR)$(MOUNT_FUSE_PATH)/mount.fuse
+ $(mkdir_p) $(DESTDIR)$(INIT_D_PATH)
+ $(INSTALL_PROGRAM) $(srcdir)/init_script $(DESTDIR)$(INIT_D_PATH)/fuse
+ @if test -x /usr/sbin/update-rc.d; then \
+ echo "/usr/sbin/update-rc.d fuse start 34 S . start 41 0 6 ."; \
+ /usr/sbin/update-rc.d fuse start 34 S . start 41 0 6 .; \
+ fi
install-data-local:
$(mkdir_p) $(DESTDIR)$(UDEV_RULES_PATH)
@@ -32,3 +39,8 @@ install-data-local:
uninstall-local:
rm -f $(DESTDIR)$(MOUNT_FUSE_PATH)/mount.fuse
rm -f $(DESTDIR)$(UDEV_RULES_PATH)/60-fuse.rules
+ rm -f $(DESTDIR)$(INIT_D_PATH)/fuse
+ @if test -x /usr/sbin/update-rc.d; then \
+ echo "/usr/sbin/update-rc.d fuse remove"; \
+ /usr/sbin/update-rc.d fuse remove; \
+ fi
diff --git a/util/init_script b/util/init_script
new file mode 100755
index 0000000..ed964cb
--- /dev/null
+++ b/util/init_script
@@ -0,0 +1,53 @@
+#! /bin/sh
+#
+# fuse Init script for Filesystem in Userspace
+#
+# Author: Miklos Szeredi <miklos@szeredi.hu>
+
+set -e
+
+PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
+SCRIPTNAME=/etc/init.d/fuse
+DESC="FUSE"
+MOUNTPOINT=/sys/fs/fuse/connections
+
+# Gracefully exit if the package has been removed.
+test -x `which fusermount` || exit 0
+
+error()
+{
+ echo "Error $1" >&2
+ exit 1
+}
+
+case "$1" in
+ start)
+ echo -n "Starting $DESC: "
+ if ! grep -qw fuse /proc/filesystems; then
+ modprobe fuse >/dev/null 2>&1 || error "loading fuse module"
+ fi
+ if grep -qw fusectl /proc/filesystems && \
+ ! grep -qw $MOUNTPOINT /proc/mounts; then
+ mount -t fusectl none $MOUNTPOINT >/dev/null 2>&1 || \
+ error "mounting control filesystem"
+ fi
+ echo "done."
+ ;;
+ stop)
+ echo -n "Stopping $DESC: "
+ if grep -qw $MOUNTPOINT /proc/mounts; then
+ umount $MOUNTPOINT >/dev/null 2>&1 || \
+ error "unmounting control filesystem"
+ fi
+ if grep -qw "^fuse" /proc/modules; then
+ rmmod fuse >/dev/null 2>&1 || error "unloading fuse module"
+ fi
+ echo "done."
+ ;;
+ *)
+ echo "Usage: $SCRIPTNAME {start|stop}" >&2
+ exit 1
+ ;;
+esac
+
+exit 0