在linux中自动启动应用程序

时间:2012-05-25 12:17:46

标签: linux embedded

我的leopard目标板上有linux操作系统和tms320dm368处理器。它是一个只有内核和rfs的原始板。目标板上没有linux发行版(ubuntu,fedora,red hat等)。 我创建了如下脚本文件

#!/bin/sh
echo "my application is here"
./helloworld  # helloworld is our application
  1. 创建脚本文件后,我将其复制到init.d
  2. 我发出命令chmod +x /etc/init.d/vcc_appvcc_app是我创建的脚本名称)
  3. 然后我发出命令ln -s /etc/init.d/vcc_app /etc/rc.d/vcc_apprc.d是运行级别目录)
  4. 但是当我重启电路板时,我的应用程序不会自动执行。任何人都可以帮助我吗?

2 个答案:

答案 0 :(得分:0)

您应该将脚本放在/etc/rcX.d/vcc_app中,将X更改为要执行的init级别,如果要在init 5上运行它,则应将脚本放在:

/etc/rc5.d/vcc_app

有关init级别的更多信息,请check this link

同样在某些发行版中,您可以添加命令以在/etc/rc.local启动脚本 或/etc/rc.d/rc.local,检查存在哪些文件并添加命令。

答案 1 :(得分:0)

知道你在董事会上实际拥有的东西会非常有趣 - 你声称你没有分发但是你使用的东西(/etc/init.d)只能用于某种类型的分配。< / p>

所以假设你真的不使用发行版,这意味着你没有shell,你没有init系统。

如果您只需要运行单个应用程序,则不需要任何shell等 - 只需将您的应用程序静态链接并将其作为/ sbin / init,/ etc / init,/ bin / init放在rootfs中。见linux kernel main.c init_post()

否则,如果您有多个应用程序,则需要一个init系统。 一个简单的uxlaunch,其他选项包括systemdbusybox init。 即使使用busybox init,您仍然不需要系统上的shell。

市场上有几种设备在没有外壳的情况下运行Linux,包括许多电视机。