toxic

备忘录

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

开机启动

固件firmware(CMOS/BIOS) -> post加电自检

                       ↓

自举程序BootLoader(GRUB) -> 载入内核

                       ↓

              载入内核Kernel   -> 启动硬件

            ↓

                启动进程init

        ↓

     读取执行配置文件/etc/inittab

时间命令

查看系统时钟  date
查看硬件时钟  hwclock
核对软件始终为硬件时钟的时间  hwclock --hctosys   
核对硬件时钟为软件时钟的时间  hwclock --systohc
手动修改软件时钟为2010年 date 121511302010.38
手动修改硬件时钟 hwclock --set --date="9/22/96 16:45:05"


linux的BootLoader(GRUB)

查看grub的连接文件  vi /etc/grub.conf
内容中 kernel为内核的版本信息
在内核中 它只做2件事情:1.驱动硬件 2.启动进程init

init进程启动后读取inittab文件,执行缺省运行级别,从而继续引导过程.init进程的pid恒为1.
ppid为0的是内核调度器,在一个CPU周期中负责分配CPU时间片,从而排队执行任务.
init为所有应用程序的父进程


inittab文件

vi /etc/inittab
内容中 运行级别(runlevel)有7种(类似windows的安全模式选择)
0-halt 关机
1-single user mode 单用户模式(安全模式)只有root能够进入且无图形界面
2-multiuser,without nfs 不带图形界面
3-full multiuser mode 不带图形界面
4-unused 自定义用户模式(可以自定义启动的服务之类的)
5-x11 带图形界面的系统
6-reboot

查看运行级别 runlevel
切换运行级别 init [0123456Ss]   其中如果是S或者s 是单用户模式    
切换运行级别 telinit [0123456Ss]
指定运行状态 action
指定要运行的可执行程序的完整路径 process

查看文件内容排除行首为#开头的行(有效行) grep -v "^#" /etc/inittab | more

查看如何使用配置文件 man inittab

在inittab中,所有条目采用以下格式

id:run-levels:action:process

例子 id:3:initdefault:

id :标识符

run-levels:指定运行级别,可以指定多个

action:指定运行状态

process:指定要运行的脚本/命令

action常用取值

initdefault: 指定系统缺省的启动运行级别

sysinit:系统启动执行

process中的指定命令

wait:执行process中指定的命令 并等其 结束后再运行其他命令

once:执行process中指定的命令, 不等待其结束

ctrlaltdel:按下ctrl+alt+del时执行的process指定的命令

 

修改系统启动2种

1.系统不管在任何运行级别都会运行的shell脚本si::sysinit:/etc/rc.d/rc.sysinit 可以在此文件中修改 来在系统启动中运行你想运行的服务或者命令

2.如果想定制不同的运行级别的启动服务或者命令可以这么做

l0:0:wait:/etc/rc.d/rc 0

l1:1:wait:/etc/rc.d/rc 1

l2:2:wait:/etc/rc.d/rc 2

l3:3:wait:/etc/rc.d/rc 3

l4:4:wait:/etc/rc.d/rc 4

l5:5:wait:/etc/rc.d/rc 5

l6:6:wait:/etc/rc.d/rc 6

 

/etc/rc.d/rc[0123456].d 分别存放对应于运行级别的服务程序脚本的符号链接,链接到init.d目录中对应的脚本

以rc3.d为例 ls /etc/rc.d/rc3.d

K01smartd      K84wpa_supplicant  S08iptables    S23NetworkManager  S82abrtd K10psacct      K86cgred           S10network     S24avahi-daemon    S90crond K10saslauthd   K87restorecond     S11auditd      S25netfs           S95atd K15httpd       K89rdisc           S12rsyslog     S26acpid           S99firstboot K25squid       K95cgconfig        S13cpuspeed    S26haldaemon       S99local K50dnsmasq     S00microcode_ctl   S13irqbalance  S26udev-post K50netconsole  S01sysstat         S15mdmonitor   S50bluetooth K74ntpd        S02lvm2-monitor    S20kdump       S55sshd K75ntpdate     S08ip6tables       S22messagebus  S80postfix

位于该目录下以S开头的表示start 是启动时要运行的 位于该目录下以K开头的表示kill 是启动时要杀掉的 位于S或者K后的数字 代表启动时启动的顺序

 

/etc/rc.d/init.d 该目录下包含了各个运行级别的服务器程序脚本

启动服务可以从init.d中进行 /etc/rc.d/init.d/sshd start

 

 

设置自启动程序

软链接方式

如果想在运行级别为3的系统中设置自启动mysql 可以这么做

创建一个软链接到运行级别3的启动目录中 ln -s /etc/init.d/mysqld /etc/rc.d/rc3.d/S100mysqld 

那么重启之后 mysql的服务就会自动启动 查看一下 pstree mysql


 

chkconfig方式

利用 chkconfig --list 查看系统中服务的缺省启动状态

利用 chkconfig --list mysqld 查看系统中某个服务的缺省启动状态

改变mysqld在运行级别中的开启或关闭状态 chkconfig --level 2345 msyqld on

 

ntsysv 方式

ntsysv --level 3

 

 



 

 GRUB

grub的配置文件默认为
/boot/grub/grub.conf
它的软链接文件在 /etc/grub.conf

GRUB配置
default 定义缺省启动的系统
timeout 定义缺省等待时间
splashimage 定义grub界面图片
hiddenmenu 隐藏菜单
title 定义菜单名称
root 设置grub根设备即内核
kernel定义内核文件所在位置
initrd 命令加载镜像文件

 

 

 

 

 

 

posted on 2012-08-16 13:49  toxic  阅读(191)  评论(0编辑  收藏  举报