linux 有自己一套完整的启动体系,抓住了 linux 启动的脉络,linux 的启动过程将不再神秘。
/etc
|-- init.d -> rc.d/init.d
|-- rc -> rc.d/rc
|-- rc.d
| |-- init.d
| | |-- NetworkManager
| | |-- network
| | |-- nfs
| | |-- xinetd
| | |-- ... ...
| |-- rc
| |-- rc.local
| |-- rc.sysinit
| |-- rc3.d
| | |-- K02NetworkManager -> ../init.d/NetworkManager
| | |-- K20nfs -> ../init.d/nfs
| | |-- S10network -> ../init.d/network
| | |-- S56xinetd -> ../init.d/xinetd
| | |-- ... ...
|-- rc.local -> rc.d/rc.local
|-- rc.news
|-- rc.sysinit -> rc.d/rc.sysinit
|-- rc0.d -> rc.d/rc0.d
|-- rc1.d -> rc.d/rc1.d
|-- rc2.d -> rc.d/rc2.d
|-- rc3.d -> rc.d/rc3.d
|-- rc4.d -> rc.d/rc4.d
|-- rc5.d -> rc.d/rc5.d
|-- rc6.d -> rc.d/rc6.d
chkconfig命令检查、设置系统的各种服务。
--add:增加所指定的系统服务,让chkconfig指令得以管理它,并同时在系统启动的叙述文件内增加相关数据;
--del:删除所指定的系统服务,不再由chkconfig指令管理,并同时在系统启动的叙述文件内删除相关数据;
--level<等级代号>:指定读系统服务要在哪一个执行等级中开启或关毕。
--list :列出所有的系统服务。
等级代号列表:
eg:
chkconfig --list #列出所有的系统服务。chkconfig --add httpd #增加httpd服务。chkconfig --del httpd #删除httpd服务。chkconfig --level httpd 2345 on #设置httpd在运行级别为2、3、4、5的情况下都是on(开启)的状态。chkconfig --list #列出系统所有的服务启动情况。chkconfig --list mysqld #列出mysqld服务设置情况。chkconfig --level 35 mysqld on #设定mysqld在等级3和5为开机运行服务,--level 35表示操作只在等级3和5执行,on表示启动,off表示关闭。chkconfig mysqld on #设定mysqld在各等级为on,“各等级”包括2、3、4、5等级。yum -y install ntsysv 如果没有请安装
默认情况下,当前运行级别为多少,在ntsysv中设置的启动服务的级别便是多少
比如,我当前的运行级别是3,那么我在伪图形界面中选择启动服务后,它的运行级别也会是3
如果想自定义运行级别可使用ntsysv --level方式
将脚本拷贝到 /etc/rc.d/init.d/ 目录下,并赋予执行权限。然后在/etc/rc.d/rc*.d中建立软链接即可
[root@localhost ~]# ln -s /etc/init.d/sshd /etc/rc.d/rc3.d/S100ssh
此处sshd是具体服务的脚本文件,S100ssh是其软链接,S开头代表加载时自启动
如果需要在多个运行级别下设置自启动,则需建立多个软链接
-------------------------------------------------------------------------------------------------------------------------
如果觉得建链接烦琐也可以将脚本拷贝到 /etc/rc.d/init.d/ 目录下,并赋予执行权限。然后通过chkconfig或ntsysv来添加
加入开机启动列表中:chkconfig --add sshd 设置为开机启动项: chkconfig sshd on
将服务启动命令加入到/etc/rc.d/rc.local中
#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don't
# want to do the full Sys V style init stuff.
touch /var/lock/subsys/local
/usr/local/nginx/sbin/nginx
/etc/init.d/keepalived start
/usr/local/bin/monit -c /etc/monitrc
/usr/local/bin/monit reload
/usr/local/bin/monit start all
注意monit服务开机自启动,需要将完整路径写入,否则不起作用
/opt/sbin/redis-server
/usr/local/nginx/sbin/nginx
/etc/init.d/sshd start|restart|stop
也可以service sshd start|restart|stop
在以上两种的基础上还可以
systemctl start|restart|stop|status sshd
注:以上内容仅是使用方法的总结,如想详细了解请查看一下链接。
http://man.linuxde.net/chkconfig
https://blog.csdn.net/u013220323/article/details/79195000
https://www.cnblogs.com/nerxious/archive/2013/01/18/2866548.html
https://blog.csdn.net/qq_27977257/article/details/54313166
https://www.cnblogs.com/itech/archive/2011/08/22/2149684.html