#!/bin/sh TT= ID=$1 START_FILE=$1 ECHO="echo -e" if [ "$(uname -s)" = "Darwin" ]; then ECHO=echo fi if [ "x$START_FILE" = "x" ]; then $ECHO "Usage: $0 " exit fi if [ "x$START_FILE" = "xtintin" ]; then tt++ -G -r init.tin clear; doc exit fi NEWBIE=false if [ "x$START_FILE" = "xpkuxkx" -o "x$START_FILE" = "xthuxyj" ]; then NEWBIE=true fi if [ ! -z $(which tt-beta 2>/dev/null) ]; then TT=tt-beta elif [ ! -z $(which tt++ 2>/dev/null) ]; then TT=tt++ else $ECHO "\x1b[1;31m软件安装错误,没有找到可用的 tintin,请重新安装。\x1b[0m" exit fi if [ -f var/ids/$START_FILE ]; then START_FILE=var/ids/$START_FILE elif [ -f ids/$START_FILE ]; then START_FILE=ids/$START_FILE else $ECHO "\x1b[1;31m不存在启动配置文件 \x1b[1;33m$START_FILE\x1b[1;31m。\x1b[0m" exit fi $ECHO "\x1b[1;32m启动 tintin...\x1b[0m" $ECHO "\x1b[1;32m$TT $START_FILE\x1b[0m" mkdir -p tmux/$ID log() { MSG=$1 TIME=$(date +'%Y-%m-%d %H:%M:%S') echo $TIME $START_FILE $MSG >> log/tintin.log } tintin() { log "TinTin++ 启动。" $TT -G -t GAME-$ID $START_FILE } tintin CODE=$? INTERVAL=1 MAX_INTERVAL=1800 while [ "$CODE" -ne "0" ]; do if [ "$INTERVAL" -gt "$MAX_INTERVAL" ]; then INTERVAL=$MAX_INTERVAL fi log "TinTin++ 非正常退出,exit code = $CODE,等待 $INTERVAL 秒后重新启动。" sleep $INTERVAL INTERVAL=$(expr $INTERVAL '*' 2) tintin CODE=$? done log "TinTin++ 正常退出,exit code = $CODE" if [ "$NEWBIE" = "true" ]; then clear; doc fi