![我应该把 C++ 程序放在哪里在启动时运行?](https://linux22.com/image/121104/%E6%88%91%E5%BA%94%E8%AF%A5%E6%8A%8A%20C%2B%2B%20%E7%A8%8B%E5%BA%8F%E6%94%BE%E5%9C%A8%E5%93%AA%E9%87%8C%E5%9C%A8%E5%90%AF%E5%8A%A8%E6%97%B6%E8%BF%90%E8%A1%8C%EF%BC%9F%20.png)
我正在尝试我的 Ubuntu 服务器在启动后启动我的程序,所以我将程序的可执行文件地址放在后面,/etc/rc.local
如下space+&
所示:
/home/m/myapp &
但没有成功!我的程序是一个简单的 C++ 代码,它使用 gtk+ 库来显示图像,当我手动运行它时它可以工作。但我想让它在启动时自动运行,但不知道如何?
编辑:我想制作一台简单用途的计算机。实际上它是一个机器人,它的程序是用C++编写的,它的可执行文件是/home/m/myapp
.我也不喜欢有登录页面。没有用户菜单或控制系统的能力。所以它必须在开机后自动运行。
如果我想解释更多,系统应该像这样工作:
当用户打开系统时,它会显示欢迎图片,然后等待用户说出语音命令。然后它识别语音,显示与语音相关的图像/视频,然后再次显示欢迎图片并等待新命令。
没有菜单,没有登录页面,也没有任何可供用户使用的内容。正如我上面所说,该系统只能通过用户命令运行!
因为我是Linux新手,所以我不知道它是不是后台程序?我怎样才能做到这一点?
答案1
GTK 需要 X,没有 X 你的程序就无法显示图像。
如果您希望它在登录管理器的上下文中运行,请将其添加到登录管理器的桌面环境中。 (这是我上次查看 ubuntu 时的 /var/lib/something )
否则,您可以将登录管理器替换为非交互式管理器,例如“nodm”,它将自动打开 toyr 会话,然后只需将您的 C++ 应用程序添加到会话的启动应用程序中。
我不确定您在哪里添加应用程序以在 openbox 中自动启动,但~/.xsession
始终有效。
创建一个~/.xsession
文件yourapp&
,然后openbox-session
(参见手册页xinit
)