我正在尝试使用bash脚本在Mac OS X Mountain Lion上调试我的应用程序,该脚本用于使用多种输入方法打开应用程序。虽然我想让脚本退出运行时用简短的描述发生了什么,如果它遇到任何错误信号(没有设置-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>),但看起来如果发生崩溃,它不会不正确地将应用程序日志打印到文件或终端,脚本只是继续运行。另外,不知何故,来自system.log的grep无法捕获崩溃。
在Mac上的shell脚本中监视和捕获应用程序崩溃的更好选择是什么?我在Linux上做过类似的测试,但它们运行良好。
编辑:我也对有关监视崩溃的其他方法的建议持开放态度,而不是shell脚本。 : - )