gpt4 book ai didi

c - 在 Linux 中关闭应用程序的 Shell 脚本

转载 作者:太空狗 更新时间:2023-10-29 11:08:10 26 4
gpt4 key购买 nike

我用c语言在edison device中写了一个姿势感应代码。我已成功在启动时调用应用程序。但是我需要一个 shell 脚本来在断电时关闭这个应用程序。

我试过 kill {pid} 命令行操作。尽管我终止了命令,但在断电期间设备需要额外 5 分钟才能停止该应用程序。我在这里遗漏了什么吗..

最佳答案

您的应用程序应该显式处理一些 signal(7) -s,特别是 SIGTERM 在关机时发送(由某些系统程序执行 kill(2) )。

发送 SIGKILL(例如 kill -9kill -KILL)是不安全的(特别是对于在磁盘上维护某些状态的服务器,例如数据库服务器,还有任何具有某种持久状态、配置或日志的软件......)因为被杀死的程序没有机会清理它的困惑,刷新它的缓冲区,并在磁盘上保存一致的状态。

所以稳健的策略是kill -TERM,几秒后kill -QUIT,几秒后kill -KILL .因此,健壮的应用程序应该处理 SIGTERMSIGQUIT(但不能捕获 SIGKILL)...您可能会处理 SIGPWR(但并非每个系统都有它或正确管理它;一些 UPS 硬件和软件有)。

也许你的系统使用systemd你可以利用它(例如 D-bus 东西)。

关于c - 在 Linux 中关闭应用程序的 Shell 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32560696/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com