繁体   English   中英

Linux守护程序中的错误处理

[英]Error Handling in Linux Daemon

我正在写一个服务器Linux守护进程。 我想知道UNIX / Linux社区中的协议是什么守护进程遇到致命错误时应该做的事情(例如服务器无法监听,分段错误等)。 我已经完成了系统日志的全部工作,但我想知道如何处理致命错误。 我应该记录并继续在无限循环中运行吗? 我应该登录并退出吗? 这里有什么标准的事情,我该怎么办?

守护进程是用C ++编写的,我使用自定义异常系统来包装POSIX错误代码,所以我会知道什么时候是致命的。

存在“致命错误”的程度。

  • 服务器无法收听可能是一个临时问题; 你的守护进程可能应该继续尝试连接,可能会定期重试,然后慢慢退回(1秒,2秒,4秒等)。

  • 如果你遇到一个seg错误,最好的办法就是重新执行守护进程,尝试重启自己。 当然,这可能会再次发生。

  • 你不应该进入一个无限的无所事事的循环; 你应该终止而不是那样做。 如果你的循环不是无限的,但可能被信号或其他东西打破,也许什么也没做好; 我建议使用pause()系统调用,以便在不消耗CPU时间的情况下不执行任何操作。

  • 你应该在退出之前记录你正在做的事情和原因。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM