无法捕获程序退出

无法捕获程序退出

我启动了一个使用 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 &

相关内容