我有一个基于 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
- 首先,它会尝试正确关闭内部运行的所有应用程序。之后,它转储自己的缓存并退出。这里的瓶颈很可能是存在内存泄漏或类似问题的应用程序。您必须调试该应用程序。