File size: 3,716 Bytes
a038f47
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
#!/bin/bash

# version 1

# being undecided
FLAG_NAME=$1

# null
FLAG_NULL=$2

# flag Key
FLAG_KEY=$3

if [ -z "$FLAG_NAME" ] || [ "$FLAG_NAME" = " " ]; then
  FLAG_NAME="null"
fi
if [ -z "$FLAG_NULL" ]; then
  FLAG_NULL="null"
fi
if [ -z "$FLAG_KEY" ]; then
  FLAG_KEY="null"
fi

cd /workspace
cd *

R_PATH="$(pwd)"

if [ ! -d "$R_PATH/SD" ]; then
  echo "SD folder not found."
  exit 101
fi

MUID=""

if [ -f "$R_PATH/SD/MUID.txt" ]; then
  MUID=$(<./SD/MUID.txt)
  MUID=${MUID%%+( )}
  MUID=${MUID%%+(\n)}
  #MUID_LEN=${#MUID}
  #MUID=${MUID:1:MUID_LEN-2}
else
  RANDOM_STR1="$(head -c 128 /dev/urandom | tr -dc 'A-Z')ZZ"
  RANDOM_STR2="$(head -c 384 /dev/urandom | tr -dc 'A-Z0-9')ZZZZZZZZZZZZZZ"
  MUID="${RANDOM_STR1::1}${RANDOM_STR2::14}${RANDOM_STR1:1:1}"
  echo -e "$MUID" >> ./SD/MUID.txt
fi

MUIDL="${MUID::3}${MUID:13:3}"

OUPUT_PATH="SD/output"
OUPUT_PATH2="output"

#echo "$FLAG_NAME $FLAG_NULL $FLAG_KEY $R_PATH $OUPUT_PATH $MUID $MUIDL"

func_kill()
{
  kill -9 $(ps -ef | grep 'autoUpload.sh' | grep -v 'grep' | awk '{print $2}')
  kill -9 $(ps -ef | grep 'run.sh' | grep -v 'grep' | awk '{print $2}')
  kill -9 $(ps -ef | grep 'webui' | grep -v 'grep' | awk '{print $2}')
  kill -9 $(ps -ef | grep 'launch.py' | grep -v 'grep' | awk '{print $2}')
  kill -9 $(ps -ef | grep 'gradio' | grep -v 'grep' | awk '{print $2}')
  rm -rf /tmp/*
  rm -rf $R_PATH/$OUPUT_PATH
  rm -rf $R_PATH/$OUPUT_PATH2
  for item in $(find . -name "output_${MUIDL}*.zip"); do
    rm -rf $item
  done
}

if [ "$FLAG_KEY" = "null" ]; then
  # enter when the user runs manually.
  kill -9 $(ps -ef | grep 'jupyter' | grep -v 'grep' | awk '{print $2}')
  func_kill
  apt-get install -y inotify-tools
  apt-get install -y zip
  pip3 install pcloud
  CURRNET_PID=$$
  #kill -9 $(ps -ef | grep 'xAutoRunTo5m' | grep -v 'grep' | awk '{print $2}')
  kill -9 $(ps -ef | grep 'xAutoRunTo5m' | grep -v 'grep' | awk -v pid=$CURRNET_PID '$2 != pid {print $2}')
  FLAG_KEY="startDaemon"
  bash -c ". $R_PATH/xAutoRunTo5m.sh $FLAG_NAME $FLAG_NULL $FLAG_KEY"
elif [ "$FLAG_KEY" = "startDaemon" ]; then
  cd /workspace
  cd *
  FLAG_KEY="runningDaemon"
  chmod 755 xAutoRunTo5m.sh
  nohup ./xAutoRunTo5m.sh $FLAG_NAME $FLAG_NULL $FLAG_KEY 2>&1 &
elif [ "$FLAG_KEY" = "runningDaemon" ]; then
  cd /workspace
  cd *
  w1=0
  w2=0
  w3=0
  while :
  do
    uptime_minutes=$(awk '{print int($1/60)}' /proc/uptime)
    current_minute=$(date +%M)
    if [ "$uptime_minutes" -ge 181 ]; then
      func_kill
      kill -15 $(ps -ef | grep 'xAutoRunTo5m.sh' | grep -v 'grep' | awk '{print $2}')
      echo "kill xAutoRunTo5m"
      exit 100
    fi
    if [ $(expr ${current_minute} % 5) -eq 0 ]; then
      w2=0
      if [ ${w1} -eq 0 ]; then
        w1=1
        chmod 755 run.sh
        nohup ./run.sh 2>&1 &
        sleep 50s
        for item in $(find . -name "output_${MUIDL}*.zip"); do
          rm -rf $item
        done
      fi
    elif [ $(expr ${current_minute} % 5) -eq 4 ]; then
      w1=0
      if [ ${w2} -eq 0 ]; then
        w2=1
        sleep 50s
        kill -9 $(ps -ef | grep 'run.sh' | grep -v 'grep' | awk '{print $2}')
        kill -9 $(ps -ef | grep 'webui' | grep -v 'grep' | awk '{print $2}')
        kill -9 $(ps -ef | grep 'launch.py' | grep -v 'grep' | awk '{print $2}')
        kill -9 $(ps -ef | grep 'gradio' | grep -v 'grep' | awk '{print $2}')
        rm -rf /tmp/*
        bash -c ". $R_PATH/out.sh 1 $MUIDL && sleep 2 && rm -rf $R_PATH/$OUPUT_PATH && rm -rf $R_PATH/$OUPUT_PATH2"
        sleep 1s
      fi
    fi
    sleep 2s
  done
elif [ "$FLAG_KEY" = "kill" ]; then
  func_kill
  kill -15 $(ps -ef | grep 'xAutoRunTo5m.sh' | grep -v 'grep' | awk '{print $2}')
  echo "kill xAutoRunTo5m"
  exit 100
else
  :
fi