我希望在我的嵌入式Linux桌面启动时运行程序,就像Windows在“Startup”文件夹中运行程序一样。我怎么能这样做?
具体来说,我的目标硬件是Beaglebone Black,Debian变体(rev C board)。窗口管理器是默认窗口管理器。
答案 0 :(得分:3)
在Linux中,这些称为init脚本,通常位于/etc/init.d
。应该如何定义它们在不同的发行版之间有所不同,但今天很多都使用Linux标准库(LSB)Init脚本格式。
对此有良好的解读: https://wiki.debian.org/LSBInitScripts https://www.debian-administration.org/article/28/Making_scripts_run_at_boot_time_with_Debian
答案 1 :(得分:0)
事实证明,有多种方法可以启动程序。 LXDE - 窗口管理器 - 支持自动启动〜/ .config / autostart或/ etc / xdg / autostart中的.desktop文件 - hooray!
http://wiki.lxde.org/en/Autostart
除了 ...虽然我可以用这种方式运行一个简单的程序作为概念验证,当我尝试运行我的时候,它失败了。我无法弄清楚为什么。文件
的.xsession-errors.old
包含X服务器错误(“资源暂时不可用”)。
我现在正在使用另一种机制 - 从shell脚本运行代码(这是必要的,因为我需要为程序指定一个工作目录)。这使用/ etc / xdg / lxsession /中的“autostart”文件,至少它可以工作。好吧。我要么在运行之前“睡5”,要么在运行前加上@符号,如果失败则强制重试。它看起来有点像我的代码依赖的东西在自动启动机制找到它的确切时间不到位。我找不到确保启动顺序的方法。这显然是一堆臭味。