github.com/rclone/rclone@v1.66.1-0.20240517100346-7b89735ae726/fstest/testserver/init.d/rclone-serve.bash (about)

     1  #!/bin/bash
     2  
     3  # start an "rclone serve" server
     4  
     5  PIDFILE=/tmp/${NAME}.pid
     6  DATADIR=/tmp/${NAME}-data
     7  
     8  stop() {
     9      if status ; then
    10          pid=$(cat "$PIDFILE")
    11          kill "$pid"
    12          rm "$PIDFILE"
    13          echo "$NAME stopped"
    14      fi
    15  }
    16  
    17  status() {
    18      if [ -e "$PIDFILE" ]; then
    19          pid=$(cat "$PIDFILE")
    20          if kill -0 "$pid" >/dev/null 2>&1; then
    21              # echo "$NAME running"
    22              return 0
    23          else
    24              rm "$PIDFILE"
    25          fi
    26      fi
    27      # echo "$NAME not running"
    28      return 1
    29  }
    30  
    31  run() {
    32      if ! status ; then
    33          mkdir -p "$DATADIR"
    34          nohup "$@" >> "/tmp/${NAME}.log" 2>&1 </dev/null &
    35          pid=$!
    36          echo $pid > "$PIDFILE"
    37          disown "$pid"
    38      fi
    39  }
    40  
    41  # shellcheck disable=SC1090
    42  . "$(dirname "$0")/run.bash"