#!/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