github.com/swiftstack/proxyfs@v0.0.0-20201223034610-5434d919416e/saio/bin/unmount_and_stop_pfs (about)

     1  #!/bin/bash
     2  
     3  # A simple script to unmount the sample mount point and stop the services
     4  # The PATH, etc should already be setup by systemctl environment
     5  
     6  function await_proxyfsd_shutdown {
     7      while true
     8      do
     9          pidof proxyfsd > /dev/null
    10          if [ $? -ne 0 ]
    11          then
    12              break
    13          fi
    14          echo "Waiting for ProxyFS to be stopped..."
    15          sleep 1
    16      done
    17  }
    18  
    19  function await_pfsagentd_shutdown {
    20      while true
    21      do
    22          pidof pfsagentd > /dev/null
    23          if [ $? -ne 0 ]
    24          then
    25              break
    26          fi
    27          echo "Waiting for PFSAgent to be stopped..."
    28          sleep 1
    29      done
    30  }
    31  
    32  MOUNT_POINT_NFS=127.0.0.1:/CommonMountPoint
    33  SHARE_NFS=/mnt/nfs_proxyfs_mount/
    34  
    35  MOUNT_POINT_SMB=//127.0.0.1/proxyfs
    36  SHARE_SMB=/mnt/smb_proxyfs_mount/
    37  
    38  if [ $# = 0 ]; then
    39      SHOULD_UNMOUNT=1
    40  else
    41      if [ $1 = "keepmounts" ]; then
    42          SHOULD_UNMOUNT=0
    43      else
    44          echo "Invalid argument: $1"
    45          exit 1
    46      fi
    47  fi
    48  
    49  if [ $SHOULD_UNMOUNT = 1 ]; then
    50      mountpoint -q $SHARE_NFS
    51      if [ $? -eq 0 ]; then
    52        echo "Unmounting NFS mount point at '${SHARE_NFS}'..."
    53        sudo umount $SHARE_NFS
    54      fi
    55  
    56      mountpoint -q $SHARE_SMB
    57      if [ $? -eq 0 ]; then
    58        echo "Unmounting SMB mount point at '${SHARE_SMB}'..."
    59        sudo umount $SHARE_SMB
    60      fi
    61  fi
    62  
    63  if [ -f /usr/bin/systemctl ]; then
    64      # Centos
    65      sudo /usr/bin/systemctl stop pfsagentd
    66      sudo /usr/bin/systemctl stop nfs-idmap
    67      sudo /usr/bin/systemctl stop nfs-lock
    68      sudo /usr/bin/systemctl stop nfs-server
    69      sudo /usr/bin/systemctl stop rpcbind
    70      sudo /usr/bin/systemctl stop smb
    71      # We need to make sure PFSAgent is stopped before we stop ProxyFS, but we
    72      # don't care if other services are stopped in the meantime.
    73      await_pfsagentd_shutdown
    74      sudo /usr/bin/systemctl stop proxyfsd
    75      await_proxyfsd_shutdown
    76      sudo /usr/bin/swift-init main stop
    77      sudo /usr/bin/systemctl stop memcached
    78  else
    79      # Ubuntu (not tested!)
    80      # Here we should stop pfsagentd, but we don't support Ubuntu
    81      sudo /usr/sbin/service nfs-idmap stop
    82      sudo /usr/sbin/service nfs-lock stop
    83      sudo /usr/sbin/service nfs-server stop
    84      sudo /usr/sbin/service rpcbind stop
    85      sudo /usr/sbin/service smbd stop
    86      sudo /usr/sbin/service proxyfsd stop
    87      await_proxyfsd_shutdown
    88      sudo /usr/bin/swift-init main stop
    89      sudo /usr/sbin/service memcached stop
    90  fi