1

我正在尝试使用 bash 脚本在 Mac OS X Mountain Lion 上调试我的应用程序,该脚本用于使用多种输入法打开应用程序。虽然我希望脚本退出运行并简短描述发生了什么,但如果它遇到任何错误信号(没有 set -e)。

脚本按以下方式构建:

#!/bin/bash
#
...

while true
do
  for input in $INPUTS 
  do
    /path/to/app $input 2> mylog.log &
    sleep 2

    tail -2 /private/var/log/system.log | grep $ERROR &&
     echo $input &&
     exit 1;

    test $? -gt 127 &&
     echo $input &&
     exit 2;

    # nothing happened, kill the app and continue with a new test
    pkill -9 app
  done
done

我试图通过手动发送来调试脚本

pkill -SIGSEGV app

在终端。我正在尝试让脚本将输出打印到命令行(因此在 app 命令中使用“&”)以及日志文件(2>),但看起来如果发生崩溃,它不会t 将应用程序日志正确打印​​到文件或终端,并且脚本只是继续运行。此外,不知何故,来自 system.log 的 grep 并没有捕捉到崩溃。

在 Mac 上的 shell 脚本中监视和捕获应用程序崩溃的更好选择是什么?我在 Linux 上做过类似的测试,它们运行良好。

编辑:除了 shell 脚本之外,我也愿意就其他监控崩溃的方法提出建议。:-)

4

0 回答 0