github.com/swiftstack/ProxyFS@v0.0.0-20210203235616-4017c267d62f/saio/bin/unmount_and_stop_pfs (about)

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