docker – Blame information for rev 40

Subversion Repositories:
Rev:
Rev Author Line No. Line
40 office 1 #!/bin/sh
2  
3 set -u # Treat unset variables as an error.
4  
5 trap "exit" TERM QUIT INT
6 trap "kill_rclonebrowser" EXIT
7  
8 log() {
9 echo "[rclonebrowsersupervisor] $*"
10 }
11  
12 getpid_rclonebrowser() {
13 PID=UNSET
14 if [ -f /config/rclonebrowser.pid ]; then
15 PID="$(cat /config/rclonebrowser.pid)"
16 # Make sure the saved PID is still running and is associated to
17 # RcloneBrowser.
18 if [ ! -f /proc/$PID/cmdline ] || ! cat /proc/$PID/cmdline | grep -qw "rclone"; then
19 PID=UNSET
20 fi
21 fi
22 if [ "$PID" = "UNSET" ]; then
23 PID="$(ps -o pid,args | grep -w "rclone" | grep -vw grep | tr -s ' ' | cut -d' ' -f2)"
24 fi
25 echo "${PID:-UNSET}"
26 }
27  
28 is_rclonebrowser_running() {
29 [ "$(getpid_rclonebrowser)" != "UNSET" ]
30 }
31  
32 start_rclonebrowser() {
33 dbus-uuidgen
34 export TERMINAL=xterm
35 /usr/bin/rclone-browser > /config/logs/output.log 2>&1 &
36 }
37  
38 kill_rclonebrowser() {
39 PID="$(getpid_rclonebrowser)"
40 if [ "$PID" != "UNSET" ]; then
41 log "Terminating RcloneBrowser..."
42 kill $PID
43 wait $PID
44 fi
45 }
46  
47 if ! is_rclonebrowser_running; then
48 log "RcloneBrowser not started yet. Proceeding..."
49 start_rclonebrowser
50 fi
51  
52 RCLONEBROWSER_NOT_RUNNING=0
53 while [ "$RCLONEBROWSER_NOT_RUNNING" -lt 5 ]
54 do
55 if is_rclonebrowser_running; then
56 RCLONEBROWSER_NOT_RUNNING=0
57 else
58 RCLONEBROWSER_NOT_RUNNING="$(expr $RCLONEBROWSER_NOT_RUNNING + 1)"
59 fi
60 sleep 1
61 done
62  
63 log "RcloneBrowser no longer running. Exiting..."