linux开机启动
linux有自己一套完整的启动体系,抓住了linux启动的脉络,linux的启动过程将不再神秘。
阅读之前建议先看一下附图。
本文中假设inittab中设置的init
tree为:
/etc/rc.d/rc0.d
/etc/rc.d/rc1.d
/etc/rc.d/rc2.d
/etc/rc.d/rc3.d
/etc/rc.d/rc4.d
/etc/rc.d/rc5.d
/etc/rc.d/rc6.d
/etc/rc.d/init.d
1.
关于linux的启动
2.
关于rc.d
3. 启动脚本示例
4. 关于rc.local
5. 关于bash启动脚本
6.
关于开机程序的自动启动
1. 关于linux的启动
init是所有进程之父
init读取/etc/inittab,执行rc.sysinit脚本
(注意文件名是不一定的,有些unix甚至会将语句直接写在inittab中)
rc.sysinit脚本作了很多工作:
init
$PATH
config network
start swap
set hostname
check root file
system, repair if needed
check root space
....
rc.sysinit根据inittab执行rc?.d脚本
linux是多用户系统,getty是多用户与单用户的分水岭
在getty之前运行的是系统脚本
2. 关于rc.d
所有启动脚本放置在 /etc/rc.d/init.d下
rc?.d中放置的是init.d中脚本的链接,命名格式是:
S{number}{name}
K{number}{name}
S开始的文件向脚本传递start参数
K开始的文件向脚本传递stop参数
number决定执行的顺序
3. 启动脚本示例
这是一个用来启动httpd的
/etc/rc.d/init.d/apache 脚本:
代码:
#!/bin/bash
source /etc/sysconfig/rc
source $rc_s
case "$1"
in
start)
echo "Starting Apache
daemon..."
/usr/local/apache2/bin/apachectl -k
start
evaluate_retval
;;
stop)
echo "Stopping Apache daemon..."
/usr/loca
相关文档:
今天的一个很重要的收获
一个致命的命令 sudo chmod -R a+rwx * 是在当前文件夹下面的所有文件和文件夹都是可读 可写 可执行
以前安装phpcms在ubuntu下的时候 都是失败而告终的 今天终于成功 了
就是这个命令救了我 ......
每一个Linux发行版都有自己专门的工具去构建自定义的内核. 本文主要介绍在Ubuntu平台上编译内核, 如何从www.kernel.org(也叫vanilla kernel)获得最新且未改动的内核源代码来构建一个自定义的内核, 这样你可以使用自己的内核而不是发行版的内核, 另外也介绍了如何给内核打补丁, 从而方便增加新的功能.
下面的工作我都在Ub ......
解答:学习Linux的四个步骤
假设你是计算机科班出身,计算机系的基本课程如数据结构、操作系统、体系结构、编译原理、计算机网络你全修过
我想大概可以分为4个阶段,水平从低到高
从安装使用=>linux常用命令=>linux系统编程=>内核开发阅读内核源码
其中学习linux常用命令时就要学会自己编译内核,优化系统,调 ......
1.将 arm-linux-gcc 的压缩包解压到tmp目录下
2.将 tmp/usr/local 下的 arm 目录copy 到系统的/usr/local 下
3.执行命令:vi/etc/profile 在path murge的语句断后添加
pathmurge/usr/local/arm/2.95.3/bin;
4.按ESC键,输入:wq 保存并退出.
5.执行 source /etc/profile
6.建立工作目录mkdir -p/opt/Fr ......
//获去GateWay
QString GetGateWay()
{
FILE *fp;
char buf[512];
char cmd[128];
char gateway[30];
char *tmp;
strcpy(cmd, "ip route");
fp = popen(cmd, "r");
if(NULL == fp)
{
perror("popen error");
return "";
}
while(fgets(buf, sizeof(buf), fp) != NULL)
{
tmp =buf;
w ......