我启动了一个使用 Node.js 编写的程序,并使用启动管道将其启动到日志文件中并将其发送到后台。
程序运行到一半就退出了,控制台和日志上都没有任何错误,我什至检查了 /var/log/message,但我无法找出程序出了什么问题。
有没有更好的方法来捕获导致退出的错误/消息?
当前执行的bash脚本如下:
./run_all_with_logs >> logs/my.log &
答案1
退出代码应该告诉您进程是否被外部信号终止或以(希望有用的)内部退出代码自行退出。
您可以稍微扩展命令行以包含退出代码(请参阅其他问题以解码此退出代码):
(./run_all_with_logs ; echo "Final Exit Code: $?" ) >> logs/my.log &
你可以让它变得更奇特(解码退出状态等)。
答案2
让我们稍微增强一下 PT: 的答案。
基本形式将所有正常输出发送到日志文件。
./run_all_with_logs >> logs/my.log &
如果我们重定向错误,我们可以记录错误和正常的打印输出。
./run_all_with_logs 2>&1 >> logs/my.log &
如果我们随后在子 shell 中执行该命令,我们也可以打印退出代码。
(./run_all_with_logs ; echo "Final Exit Code: $?" ) 2>&1 >> logs/my.log &