| #! /bin/sh |
| ### BEGIN INIT INFO |
| # Provides: fuse |
| # Required-Start: |
| # Should-Start: udev |
| # Required-Stop: |
| # Default-Start: S |
| # Default-Stop: |
| # Short-Description: Start and stop fuse. |
| # Description: Load the fuse module and mount the fuse control |
| # filesystem. |
| ### END INIT INFO |
| |
| set -e |
| |
| PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin |
| MOUNTPOINT=/sys/fs/fuse/connections |
| |
| # Gracefully exit if the package has been removed. |
| which fusermount3 &>/dev/null || exit 5 |
| |
| case "$1" in |
| start|restart|force-reload) |
| if ! grep -qw fuse /proc/filesystems; then |
| echo -n "Loading fuse module" |
| if ! modprobe fuse >/dev/null 2>&1; then |
| echo " failed!" |
| exit 1 |
| else |
| echo "." |
| fi |
| else |
| echo "Fuse filesystem already available." |
| fi |
| if grep -qw fusectl /proc/filesystems && \ |
| ! grep -qw $MOUNTPOINT /proc/mounts; then |
| echo -n "Mounting fuse control filesystem" |
| if ! mount -t fusectl fusectl $MOUNTPOINT >/dev/null 2>&1; then |
| echo " failed!" |
| exit 1 |
| else |
| echo "." |
| fi |
| else |
| echo "Fuse control filesystem already available." |
| fi |
| ;; |
| stop) |
| if ! grep -qw fuse /proc/filesystems; then |
| echo "Fuse filesystem not loaded." |
| exit 7 |
| fi |
| if grep -qw $MOUNTPOINT /proc/mounts; then |
| echo -n "Unmounting fuse control filesystem" |
| if ! umount $MOUNTPOINT >/dev/null 2>&1; then |
| echo " failed!" |
| else |
| echo "." |
| fi |
| else |
| echo "Fuse control filesystem not mounted." |
| fi |
| if grep -qw "^fuse" /proc/modules; then |
| echo -n "Unloading fuse module" |
| if ! rmmod fuse >/dev/null 2>&1; then |
| echo " failed!" |
| else |
| echo "." |
| fi |
| else |
| echo "Fuse module not loaded." |
| fi |
| ;; |
| status) |
| echo -n "Checking fuse filesystem" |
| if ! grep -qw fuse /proc/filesystems; then |
| echo " not available." |
| exit 3 |
| else |
| echo " ok." |
| fi |
| ;; |
| *) |
| echo "Usage: $0 {start|stop|restart|force-reload|status}" |
| exit 1 |
| ;; |
| esac |
| |
| exit 0 |