Live & Learn
分类: LINUX
2016-08-16 09:25:04
linux自启动应用程序,刚开始是/etc/init.d/rcS加入应用程序或者脚本命令就可以实现开机自动运行,不过出现了“找不到库”问题,于是把应用程序放到/etc/profile中自己开机启动的程序,但是不能自启动,需要敲回车。
解决方法:
从开发板的角度讲,一般只要在/etc/init.d/rcS中加入你的程序或者脚本命令就可以实现开机自动运行;想在超级终端输入回车,登录后执行,则可以在/etc/profile中加入命令;如果想去掉每次开机完后的“Please press Enter to activate this console”这句,也就是实现开机自动登录,可以在/etc/inittab中仿照busybox中example的inittab写,只是将::askfirst:-/bin/sh改为::respawn:-/bin/sh即可,如果发现没有inittab那么就自己建一个,其他的板子可以根据自己的情况修改脚本,都差不了多少。
inittab脚本:
::sysinit:/etc/init.d/rcS
::respawn:-/bin/sh
由于默认的内核命令行上有init=/linuxrc, 因此,在文件系统被挂载后,运行的第一个程序是根目录下的linuxrc。 这是一个指向/bin/busybox的链接,也就是说,系统起来后运行的第一个程序也就是busybox本身。这种情况下,busybox首先将试图解析/etc/inittab来获取进一步的初始化配置信息(参考busybox源代码init/init.c中的 parse_inittab()函数)。而事实上,root_qtopia中并没有/etc/inittab这个配置文件,根据busybox的逻辑,它将生成默认的配置 。因此如果需要的话,是可以自己添加/etc/inittab这个配置文件,对busybox默认执行稍加修改即可达到你所要求的。
接下来初始化的脚本就是/etc/init.d/rcS
................................
......................................
到rcS中自己可以看到都执行了哪些操作,以及最后才加载qtopia。在开机启动后,有些程序需要添加&来使其再后台执行,如加载qtopia,但是我们希望在开机后实时显示日志文件或者我们的应用程序写到文件中的信息怎样来做呢?首先,利用> /dev/tty1是将输出重定向到tty1(显示屏);这时可以尝试把自己开机启动的程序放到/etc/profile中,作为我这个用户在自己登录时必须执行的程序,就像在超级终端中输入命令后的结果一样。