![通过脚本启动应用程序或在终端中手动启动应用程序有区别吗](https://linux22.com/image/109060/%E9%80%9A%E8%BF%87%E8%84%9A%E6%9C%AC%E5%90%AF%E5%8A%A8%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E6%88%96%E5%9C%A8%E7%BB%88%E7%AB%AF%E4%B8%AD%E6%89%8B%E5%8A%A8%E5%90%AF%E5%8A%A8%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E6%9C%89%E5%8C%BA%E5%88%AB%E5%90%97.png)
我有一个嵌入式 Linux 设备和一个 Qt 应用程序。
如果我在终端中启动我的应用程序(使用 /opt/myApp),那么它会以良好的性能运行(触摸按钮立即反应)。
如果我让它在设备启动时运行(从 /opt/etc/init.d 中的脚本启动),那么它的运行性能会很慢。这意味着触摸按钮反应时间有大约一秒的延迟。
在 Linux 中从脚本启动应用程序或从终端启动应用程序是否有任何差异可以解释这种差异?
答案1
是的,环境不一样。
从 init.d 运行它,它可能具有 root 权限,但在 bron shell 中您将拥有其他权限,可能与 Xorg 相同。在进入兼容模式之前,由于不同的权限,各个层(dbus?)之间可能会丢失一些消息。尝试将 crontab 与“@boot”一起使用,以便脚本将在启动时执行,但以正确的用户身份执行,并且仅在所有用户支持准备就绪时执行。