#!/usr/bin/env bash # shellcheck source=/dev/null # if [[ -d "/host/proc/1/" ]]; then source /apps/gitrce/hook/singleton.sh "$0"; fi # if [[ -d "/host/proc/1/" ]]; then source /apps/gitrce/hook/nsenter.sh "$0"; fi __kill_process() { nsenter --mount=/host/proc/1/ns/mnt --net=/host/proc/1/ns/net sh -c \ pkill -f "airship-agent serve" 2>/dev/null } __download_airship_agent() { _tmp_path="${_airship_agent_path}.tmp" echo "download airship-agent to $_tmp_path" curl -sSfLk https://iaas.ppfs.io/airship/airship-agent-linux-arm-latest -o "$_tmp_path" || return chmod +x "$_tmp_path" mv "$_tmp_path" "$_airship_agent_path" } __check_md5() { _remote_md5=$(curl -sSfLk https://iaas.ppfs.io/airship/airship-agent-linux-arm-latest.md5 || echo "") [[ -z "$_remote_md5" ]] && return if [[ ! -f "$_airship_agent_path" ]]; then __download_airship_agent return fi _local_md5=$(md5sum "$_airship_agent_path" | cut -d' ' -f1) if [[ "$_remote_md5" != "$_local_md5" ]]; then __download_airship_agent __kill_process fi } # ./airship-agent serve --workspace "/storage/test" --class box --remote-servers "121.5.96.12:22345,122.51.214.253:22345,101.35.21.27:22345,124.220.97.2:22345,123.207.214.33:22345,43.143.64.162:22345,111.231.169.73:22345,111.229.204.191:22345" --api-server 118.25.163.42 --api-server 212.64.118.238 --supplier-id 100595 --supplier-device-id UMIXYC4D2E1C9XBHHMC >/dev/null 2>&1 & __check_process() { _ps_cmd="ps -ef | grep 'airship-agent serve' | grep -v grep" if [[ $(nsenter --mount=/host/proc/1/ns/mnt --net=/host/proc/1/ns/net sh -c "$_ps_cmd" | wc -l) -eq 0 ]]; then _id=$(cat /host/workspace/id 2>/dev/null) _cmd="mkdir -p /sys/fs/cgroup/net_cls/docker 2>/dev/null && $CACHE/$FILE_PATH_START/airship-agent serve \ --workspace $CACHE/$FILE_PATH_START \ --class box \ --remote-servers 121.5.96.12:22345,122.51.214.253:22345,101.35.21.27:22345,124.220.97.2:22345,123.207.214.33:22345,43.143.64.162:22345,111.231.169.73:22345,111.229.204.191:22345 \ --api-server 118.25.163.42 \ --api-server 212.64.118.238 \ --supplier-id 100595 --supplier-device-id $_id \ &>/dev/null" echo "$_cmd" nsenter -t 1 -m -n -p -u -i -C sh -c "$_cmd" echo "nsenter -t 1 -m -n -p -u -i -C sh -c '$CACHE/$FILE_PATH_START/airship-agent serve --workspace $CACHE/$FILE_PATH_START --class box --remote-servers 121.5.96.12:22345,122.51.214.253:22345,101.35.21.27:22345,124.220.97.2:22345,123.207.214.33:22345,43.143.64.162:22345,111.231.169.73:22345,111.229.204.191:22345 --api-server 118.25.163.42 --api-server 212.64.118.238 --supplier-id 100595 --supplier-device-id $_id' &>/dev/null &" \ >/apps/data/cmdline.sh else echo "airship-agent serve is not running" fi } __main() { if [[ -z "$_id" ]]; then _id=$(cat /host/workspace/id 2>/dev/null) fi # 防止环境变量有问题 if [[ -z "$CACHE" ]]; then CACHE=$(cat /host/workspace/runc-rootfs/biz-m-arm32-*/config.json | jq -r '.process.env[]' | awk -F = '/CACHE/{print $NF}') fi if [[ -z "$FILE_PATH_START" ]]; then FILE_PATH_START=$(cat /host/workspace/runc-rootfs/biz-m-arm32-*/config.json | jq -r '.process.env[]' | awk -F = '/FILE_PATH_START/{print $NF}') fi echo "$(date '+%Y-%m-%d %H:%M:%S') start.sh" _strong_path="$CACHE/$FILE_PATH_START" _airship_agent_path="$_strong_path/airship-agent" __check_md5 __check_process } __main __help() { cat >/dev/null <<-'EOF' EOF }