start 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. #!/bin/sh
  2. TT=
  3. ID=$1
  4. START_FILE=$1
  5. ECHO="$(which echo) -e"
  6. if [ "$(uname -s)" = "Darwin" ]; then
  7. ECHO=echo
  8. fi
  9. if [ "x$START_FILE" = "x" ]; then
  10. $ECHO "Usage: $0 <ID>"
  11. exit
  12. fi
  13. if [ "x$START_FILE" = "xtintin" ]; then
  14. tt++ -G -r init.tin
  15. clear; doc
  16. exit
  17. fi
  18. NEWBIE=false
  19. if [ "x$START_FILE" = "xpkuxkx" -o "x$START_FILE" = "xthuxyj" ]; then
  20. NEWBIE=true
  21. fi
  22. if [ ! -z $(which tt-beta 2>/dev/null) ]; then
  23. TT=tt-beta
  24. elif [ ! -z $(which tt++ 2>/dev/null) ]; then
  25. TT=tt++
  26. else
  27. $ECHO "\x1b[1;31m软件安装错误,没有找到可用的 tintin,请重新安装。\x1b[0m"
  28. exit
  29. fi
  30. if [ -f var/ids/$START_FILE ]; then
  31. START_FILE=var/ids/$START_FILE
  32. elif [ -f ids/$START_FILE ]; then
  33. START_FILE=ids/$START_FILE
  34. else
  35. $ECHO "\x1b[1;31m不存在启动配置文件 \x1b[1;33m$START_FILE\x1b[1;31m。\x1b[0m"
  36. exit
  37. fi
  38. $ECHO "\x1b[1;32m启动 tintin...\x1b[0m"
  39. $ECHO "\x1b[1;32m$TT $START_FILE\x1b[0m"
  40. mkdir -p tmux/$ID
  41. log() {
  42. MSG=$1
  43. TIME=$(date +'%Y-%m-%d %H:%M:%S')
  44. echo $TIME $START_FILE $MSG >> log/tintin.log
  45. }
  46. tintin() {
  47. log "TinTin++ 启动。"
  48. $TT -G -t GAME-$ID $START_FILE
  49. }
  50. tintin
  51. CODE=$?
  52. INTERVAL=1
  53. MAX_INTERVAL=1800
  54. while [ "$CODE" -ne "0" ]; do
  55. if [ "$INTERVAL" -gt "$MAX_INTERVAL" ]; then
  56. INTERVAL=$MAX_INTERVAL
  57. fi
  58. log "TinTin++ 非正常退出,exit code = $CODE,等待 $INTERVAL 秒后重新启动。"
  59. sleep $INTERVAL
  60. INTERVAL=$(expr $INTERVAL '*' 2)
  61. tintin
  62. CODE=$?
  63. done
  64. log "TinTin++ 正常退出,exit code = $CODE"
  65. if [ "$NEWBIE" = "true" ]; then
  66. clear; doc
  67. fi