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"