aboutsummaryrefslogtreecommitdiff
path: root/src/fuse/fuse.rc.d
blob: 768da5b02d53eed4abaa0678395d28d721a939ea (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#!/bin/bash
#
# fuse		Init script for Filesystem in Userspace
# Based on the script by Miklos Szeredi <miklos@szeredi.hu>

. /etc/rc.conf
. /etc/rc.d/functions
FUSECTL=/sys/fs/fuse/connections

case "$1" in
  start)
    stat_busy "Starting fuse"
    if ! grep -qw fuse /proc/filesystems; then
      modprobe fuse >/dev/null 2>&1
      if [ $? -gt 0 ]; then
        stat_fail
        exit 1
      fi
    fi
    if grep -qw fusectl /proc/filesystems && ! grep -qw $FUSECTL /proc/mounts; then
      mount -t fusectl none $FUSECTL >/dev/null 2>&1
      if [ $? -gt 0 ]; then
        stat_fail
        exit 1
      fi
    fi
    add_daemon fuse
    stat_done
    ;;
  stop)
    stat_busy "Stopping fuse"
    umount $FUSECTL >/dev/null 2>&1
    rmmod fuse >/dev/null 2>&1
    if [ $? -gt 0 ]; then
      stat_fail
    else
      rm_daemon fuse
      stat_done
    fi
    ;;
  restart)
    $0 stop
    sleep 1
    $0 start
    ;;
  *)  
    echo "usage: $0 {start|stop|restart}"
esac
exit 0