作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
首先:为我糟糕的英语道歉。
很抱歉这个新手软件问题,但我迷失了自己的逻辑......
一些背景:
我正在开发一个 C 网络项目,我试图生成一个在增加的时间内接收逐渐增加的 UDP 消息的服务器。我只是尝试在该服务器上创建一个简单的“管理器”,以便在崩溃时能够将报告发送到特定地址。
我想到的是,我将此管理器设置为服务器端的监听器。因此,如果服务器在预定义端口内没有收到任何消息,我认为服务器出现故障。但是,无论如何,这并不是一种确定性的方法。如果该服务器崩溃,我应该指定多长时间? (如果5分钟内端口没有收到消息,是否意味着它正在崩溃?不一定是真的。我可以再次将其增加到10分钟,但再次,这是不合理的和不一致的)
我在想像 gdb 这样的应用程序如何做到这一点。如果服务器(框架)崩溃,它会自动生成一个 coredump 文件。我需要做类似的事情,所以当框架崩溃时,它就像打印“hello crash”一样简单。如何在服务器上创建一个“管理器”,以便在服务器崩溃时向我提供报告(使用 C )
任何想法将不胜感激
非常感谢
最佳答案
进程的退出代码告诉您信号是否导致其退出。您可以编写一个 C 程序并使用 wait()
获取退出代码或在 shell 脚本中执行此操作:
#!/bin/sh
./server "$@"
EXIT=$?
if [ $EXIT -eq 0 ]
then
echo exit success
else
if [ $EXIT -ge 128 ]
then
echo exited with signal $(($EXIT - 128))
else
echo exited with code $EXIT
fi
fi
您可以选择针对失败情况或信号情况重新启动服务器。
大多数服务器依赖于仔细的调试,并且不希望在崩溃时自动捕获并重新启动。
关于c - 如何在 C 软件中定义崩溃点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8918761/
我是一名优秀的程序员,十分优秀!