Linux - 在启动时启动可见终端

Linux - 在启动时启动可见终端

我有一个为 raspberry pi 上的 debian 编写的 C 程序,要求用户输入一个 1-4 之间的数字,然后将其存储在配置文件中。只有在配置文件丢失的情况下才会发生这种情况。我想在启动时运行这个程序。问题是,我可以让它在启动时运行,但无法让终端窗口显示出来以便我可以看到它。我试过编辑 /etc/rc.local 并在其中添加命令。我试过编辑 crontab。我试过使用“export display=:0 && command”的所有技巧。有什么建议吗?

编辑:

这是我在 /etc/rc.local 中实际运行的命令:

x-terminal-emulator --command=/opt/vc/src/hello_pi/initialConfig/./initialConfig.bin --display=:0

该程序使用 scanf() 来捕获键盘输入并显示反馈。

答案1

你不是在谈论“在启动时”,而是在谈论“在 X 启动时”,这是很复杂的事情,因为在典型的设置 X 启动的是一个登录管理器,即即使启动了 X 之后还没有用户会话;只有在用户登录后,才会启动会话。

因此,我的看法是:

  • 如果你有一个信息亭式的设置,其中根本没有用户会话,只是要与X一起启动一些东西,不要重新发明轮子,而是去nodm允许为预配置的用户设置图形交互会话后运行任意脚本。
  • 如果您有一个“正常”(即典型)设置,那么您尝试挂钩的行为也是错误的:您必须以某种方式挂钩到图形交互式用户会话。

    事情开始变得复杂了:

    • 如果您有一些显示管理器(*DM通常是、、GDM等),那么首先研究它们提供哪些钩子——其中一些能够在用户登录后执行某些脚本。KDMXDMslime
    • 如果您有一个“现代”d-bus启用的会话设置(GNOME 等),那么考虑您是否能够在系统d-bus实例上监听某个交互式用户会话创建的事件 - 您可以在系统实例启动后在启动时挂接到它d-bus

答案2

我终于搞明白了。你必须在用户主目录中创建一个名为 autostart 的文件,路径为 /.config/lxsession/LXDE/,然后将登录后要执行的任何命令添加到 autostart 文件中。

相关内容