Linux在加载内核后执行/sbin/init, 然后根据运行级别i启动/etc/rci(i = 0,1,2,3,4,5,6 ...).d中的各个脚本,结束后启动个人化设定/etc/rc.d/rc.local脚本(10.04的是在/etc/init.d/)
应用程序的执行可以在/etc/rc.d/rc.local这个脚本文件中进行设置
在/home/_test_目录下放置你的程序,这里以一个简单的程序为例
程序代码如下:
1 #include <stdio.h>
2 #include <unistd.h>
3 #include <sys/types.h>
4 #include <sys/stat.h>
5 #include <fcntl.h>
6
7 int main()
8 {
9 char buf[] = "Hello,this is a test program for test \"/sbin/init\"!\n";
10 int fd;
11 int ret;
12
13 fd = open("/home/eagle/_test_/file.test_sbin_init", O_RDWR | O_NONBLOCK | O_CREAT | O_TRUNC, 0755);
14 lseek(fd, 0, SEEK_END);
15 ret = write(fd, buf, sizeof(buf));
16
17 return 0;
18 }
编译后生成可执行文件test,放在/home/_test_,以便验证启动后程序是否被执行
修改/etc/rc.d/rc.local脚本文件
添加这么一段:
echo "ready to run test_sbin_init program now..."
/home/eagle/_test_/test_sbin_init
sleep 7
echo "test_sbin_init already run!"
保存后重启系统,查看启动信息,看是否有上面的话打印出来,启动后到/home/temp/test看file文件里是否有
Hello,this is a test program for test \"/sbin/init\"
这句话,有则程序启动成功。