linux修改启动脚本文件,Linux内核启动级别,自定义脚本加入系统服务chkconfig命令的使用...

系统初始化:

POST --> BootSequence (BIOS) --> Bootloader(MBR) --> kernel(ramdisk) --> rootfs(只读) --> init

init程序的类型:

SysV: init, CentOS 5

配置文件:/etc/inittab

Upstart: init, CentOS 6

配置文件:/etc/inittab, /etc/init/*.conf

Systemd:systemd, CentOS 7

配置文件:/usr/lib/systemd/system, /etc/systemd/system

ramdisk:

内核中的特性之一:使用缓冲和缓存来回事对磁盘上的文件访问

ramdisk --> ramfs

CentOS 5: initrd,  工具程序:mkinitrd

CentOS 6: initramfs, 工具程序:mkinitrd, dracut

配置文件:/etc/inittab

每一行定义一种action以及与之对应的process

Centos6只有一行,其他的放在/etc/init目录中

id:runlevel:action:process

action:

wait: 切换至此级别运行一次;

respawn:此process终止,就重新启动之;

initdefault:设定默认运行级别;process省略;

sysinit:设定系统初始化方式,此处一般为指定/etc/rc.d/rc.sysinit;

id:3:initdefault:

si::sysinit:/etc/rc.d/rc.sysinit

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

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

...

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

启动级别:

在/etc/rc.d目录中包含如下几个目录:

init.d  rc  rc0.d  rc1.d  rc2.d  rc3.d  rc4.d  rc5.d  rc6.d  rc.local  rc.sysinit

每个目录代表一个启动级别,rc0.d目录表示启动在0级别所需要运行的进程,目录里面包含着要启动的进程,S开头的就表示要启动的进程,K开头的表示要关闭的进程,S或K后面的数字是代表启动或关闭的级别,S01XXX表示这个进程优先启动。

例:在/etc/rc.d/rc3.d目录中的所有文件

K10saslauthd   K50vsftpd      K87restorecond  S10network      S19rpcgssd     S80postfix

K15svnserve    K60nfs         K87rpcbind      S11auditd       S22messagebus  S90crond

K35nmb         K69rpcsvcgssd  K89rdisc        S11portreserve  S25netfs       S95atd

K35smb         K73winbind     S08ip6tables    S12rsyslog      S26udev-post   S99local

K50netconsole  K87named       S08iptables     S14nfslock      S55sshd

比如iptables服务在3级别要正常启动的,所以在rc3.d目录中包含着一个S开头并以iptables结尾的文件。相反要在3级别下关闭的服务则包含着一个以K开头的文件。

在/etc/rc.d/init.d目录中包含着所有的系统服务,也就是chkconfig目录看到的所有系统服务。所以chkconfig命令就是专门用来处理系统服务的命令。

例:/etc/rc.d/init.d目录中的文件都是系统服务

atd        halt       messagebus  network  portreserve  rpcbind     rsyslog    smb        vsftpd

auditd     ip6tables  named       nfs      postfix      rpcgssd     sandbox    sshd       winbind

crond      iptables   netconsole  nfslock  rdisc        rpcidmapd   saslauthd  svnserve

functions  killall    netfs       nmb      restorecond  rpcsvcgssd  single     udev-post

例:chkconfig

atd               0:关闭1:关闭2:关闭3:启用4:启用5:启用6:关闭

auditd          0:关闭1:关闭2:启用3:启用4:启用5:启用6:关闭

crond           0:关闭1:关闭2:启用3:启用4:启用5:启用6:关闭

ip6tables      0:关闭1:关闭2:启用3:启用4:启用5:启用6:关闭

iptables        0:关闭1:关闭2:启用3:启用4:启用5:启用6:关闭

在chkconfig命令中看到的“0:关闭”就表示在/etc/rc.d/rc0.d目录中有一个K开头的文件,表示在这个运行级别下这个服务是关闭的。同理:“3:启用”表示系统运行在3级别下这个服务是启动的并且在/etc/rc.d/rc3.d目录中有一个S开头的文件。

说明:rc 0 --> 意味着读取/etc/rc.d/rc0.d/

K*: K##*:##运行次序;数字越小,越先运行;数字越小的服务,通常为依赖到别的服务。

S*: S##*:##运行次序;数字越小,越先运行;数字越小的服务,通常为被依赖到的服务。

管理这些文件的脚本类似于下面这样的:

for srv in /etc/rc.d/rc0.d/K*; do

$srv stop

done

for srv in /etc/rc.d/rc0.d/S*; do

$srv start

done

将自定义脚本加入到系统服务中

自定义脚本要想加入系统服务在脚本的头部分有固定格式,格式如下,其中chkconfig:   345 66 33中的345代表在3、4、5启动级别下是S级别,也就是启动级别,中间的66代表启动的优先级,最后一个33表示关闭优先级,假如自定义脚本名为demo.sh,则最终在S级别下的文件的形式为S66demo.sh,在K级别下的文件为K33demo.sh。

自定义脚本demo.sh,这个脚本要放在目录/etc/rc.d/init.d中。

#!/bin/bash

#

# chkconfig:   345 66 33

# description: 任意的描述信息

添加执行权限:chmod +x demo.sh

写完脚本后使用chkconfig --add demo.sh将脚本加入系统服务。使用chkconfig --list demo.sh查看是否加入成。

例:chkconfig --list demo.sh

demo.sh        0:关闭1:关闭2:关闭3:启用4:启用5:启用6:关闭

检查一下在对应的目录下是否有对应的文件:

ls -al /etc/rc0.d/K33demo.sh

lrwxrwxrwx. 1 root root 17 12月  7 10:29 /etc/rc0.d/K33demo.sh -> ../init.d/demo.sh

ls -al /etc/rc3.d/S66demo.sh

lrwxrwxrwx. 1 root root 17 12月  7 10:29 /etc/rc3.d/S66demo.sh -> ../init.d/demo.sh

删除系统服务:

刚才添加的系统服务可以用chkconfig --del命令删除,但是脚本并没有删除。/etc/rc.d/init.d/demo.sh这个脚本依然存在,只要再添加一次任然可以运行。

例:chkconfig --del /etc/rc.d/init.d/demo.sh

修改运行级别:

修改指定的服务运行级别,默认为2345下on。

chkconfig --level 345  iptables

最后启动的服务:

不适合放入系统服务的脚本可以放入/etc/rc.local中执行,在这里的脚本会在系统启动所有服务后再执行。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值