我的leopard目标板上有linux操作系统和tms320dm368处理器。它是一个只有内核和rfs的原始板。目标板上没有linux发行版(ubuntu,fedora,red hat等)。 我创建了如下脚本文件
#!/bin/sh
echo "my application is here"
./helloworld # helloworld is our application
init.d
chmod +x /etc/init.d/vcc_app
(vcc_app
是我创建的脚本名称)ln -s /etc/init.d/vcc_app /etc/rc.d/vcc_app
(rc.d
是运行级别目录)但是当我重启电路板时,我的应用程序不会自动执行。任何人都可以帮助我吗?
答案 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,其他选项包括systemd或busybox init。 即使使用busybox init,您仍然不需要系统上的shell。
市场上有几种设备在没有外壳的情况下运行Linux,包括许多电视机。