日期:2014-05-16  浏览次数:20768 次

怎么在makefile里面实现开机启动某程序?
原本需要开机之后,再点击应用程序,这样太麻烦了。希望能在安装程序的makefile里面加一句开机启动的能力,怎么实现?
看百度来的方法是:
开机启动时自动运行程序 Linux加载后, 它将初始化硬件和设备驱动, 然后运行第一个进程init。init根据配置 文件继续引导过程,启动其它进程。通常情况下,修改放置在 /etc/rc或 /etc/rc.d 或 /etc/rc?.d 目录下的脚本文件,可以使init自动启动其它程序。例如:编辑 /etc/rc.d/rc.local 文件(该文件通常是系统最后启动的脚本), 在文件最末加上一行“xinit”或“startx”,可以在开机启动后直接进入X-Window。
怎么在makefile里面直接做到添加startx呢?

------解决方案--------------------
那你得保证makefile中的这段开机启动代码在启动时绝对会被执行到才可以噢。这是常理!

可是如何才能做到呢?
------解决方案--------------------
在install目标下加一句
echo startx >> /etc/rc.d/rc.local
不就行了?前提是要有权限
------解决方案--------------------
那你就把sudo make -C ~/Desktop/new/ install写入/etc/rc.local当中,不过这需要密码,加上expect吧。

这种要求好怪异。
------解决方案--------------------
一般来说,想要使开机运行一些程序,有很多种方法,但是没有需要修改makefile的。

我这里提供一种开机自启动脚本的方法:
步骤1、把你的脚本放到/etc/init.d目录下。
步骤2、在/etc/rcS.d目录下,创建脚本文件对应的软链接,软链接的名字取为S91xxx.xx(91指的是执行顺序,不要与原本的文件重了,且尽量设一个大值).

这样开机后,你的脚本就能自动运行了,你把你的make放过去都可以。