如何在linux中安全地关闭大型c应用程序?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了如何在linux中安全地关闭大型c应用程序?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1122字,纯文字阅读大概需要2分钟。
内容图文
![如何在linux中安全地关闭大型c应用程序?](/upload/InfoBanner/zyjiaocheng/956/d3b8e8cc396d4bd1b03a021793923c1f.jpg)
我有大型多线程c应用程序,它基本上做了很多工作,比如在linux上运行的本地服务器,sql数据库通信,sip等.
我想关闭linux机器,使用“sudo shutdown -h now”
在关闭系统之前我应该??关闭我的应用程序吗?什么是关闭我的应用程序的安全方法.
如果我使用“sudo kill -9 pID”关闭我的应用程序,那么可能是我丢失了某些应用程序状态,我的系统可能会进入糟糕的状态.
例如:假设我正在读取和写入c中的文件,并且关闭命令来了,会发生什么?我应该从我的代码中检测shutdown siganl,先关闭文件然后关闭.什么是正确的方法?
谢谢
解决方法:
shutdown命令启动一个关闭过程(传统上通过调用init 0,但systemd可能不再是这种情况).此关闭过程大致包含以下部分:
>禁止任何人登录
>向所有进程发送SIGTERM并等待几秒钟
>向所有进程发送SIGKILL并等待几秒钟
>将所有未写入的更改写入磁盘
>关闭系统
如果您的程序需要对关闭做出反应,最好的方法是捕获SIGTERM,操作系统对您有所了解.当你得到SIGTERM时,假设有人要你终止.获得SIGTERM后,将所有更改写入磁盘并安全关闭应用程序.尽量不要让这个过程太复杂,因为系统只给你一个有限的时间来对SIGTERM作出反应.
一般情况下,您的程序应该处理自身或系统意外崩溃.它应该以一种方式编写,它可以从具有不一致数据结构的系统崩溃中恢复.这很难做到正确,甚至对这个策略的基本解释对于这个答案来说太过分了.
内容总结
以上是互联网集市为您收集整理的如何在linux中安全地关闭大型c应用程序?全部内容,希望文章能够帮你解决如何在linux中安全地关闭大型c应用程序?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。