Shell脚本在linux下closures应用程序

我在c。的edison设备上写了一个姿态传感代码。 我已经成功地在启动时调用应用程序。 但是我需要一个shell脚本来closures这个应用程序。

我已经尝试kill {pid}命令行操作。 即使我杀死了这个命令,在断电的时候需要额外的5分钟来停止这个应用程序。 我在这里错过了什么

你的应用程序应该明确地处理一些信号(7) -s,特别是在关机时发送的SIGTERM (由一些系统程序执行kill(2) )。

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

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

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