| #! /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 |