服务需要一分多钟才能关闭

服务需要一分多钟才能关闭

我有一个基于 Linux 的设备,它在启动时运行某些服务,但是当我运行adb shell shutdown -h now命令时,其中一个服务似乎需要一分多钟才能关闭。

有没有办法知道服务关闭时导致额外延迟的原因是什么?

以下是当服务关闭时调用的守护程序文件的一部分......

start-stop-daemon -K -n /usr/bin/service

我在日志中看到以下内容

A stop job is running for service (1min 8s / 1min 15s)
A stop job is running for service (1min 11s / 1min 15s)
A stop job is running for service (1min 15s / 1min 51s)
...

答案1

不,没有简单的方法可以做到这一点。通常,应用程序关闭过程包括转储内存缓存、关闭文件、向其他进程发送“我已关闭”消息等。这完全取决于应用程序及其退出方式。

在这种情况下adb- 首先,它会尝试正确关闭内部运行的所有应用程序。之后,它转储自己的缓存并退出。这里的瓶颈很可能是存在内存泄漏或类似问题的应用程序。您必须调试该应用程序。

相关内容