docker – Blame information for rev 40
?pathlinks?
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..." |