CentOS 设置开机自启动 以及启动服务

一.设置开机自启动

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

1.通过chkconfig 命令  此种方法适用已经安装了的服务

chkconfig命令检查、设置系统的各种服务。

--add:增加所指定的系统服务,让chkconfig指令得以管理它,并同时在系统启动的叙述文件内增加相关数据;

--del:删除所指定的系统服务,不再由chkconfig指令管理,并同时在系统启动的叙述文件内删除相关数据;

--level<等级代号>:指定读系统服务要在哪一个执行等级中开启或关毕。

--list 列出所有的系统服务。

等级代号列表:

  • 等级0表示:表示关机
  • 等级1表示:单用户模式
  • 等级2表示:无网络连接的多用户命令行模式
  • 等级3表示:有网络连接的多用户命令行模式
  • 等级4表示:不可用
  • 等级5表示:带图形界面的多用户模式
  • 等级6表示:重新启动



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等级。



2.ntsysv 伪图形   此种方法适用已经安装了的服务

yum -y install ntsysv   如果没有请安装

CentOS 设置开机自启动 以及启动服务_第1张图片

默认情况下,当前运行级别为多少,在ntsysv中设置的启动服务的级别便是多少

比如,我当前的运行级别是3,那么我在伪图形界面中选择启动服务后,它的运行级别也会是3

如果想自定义运行级别可使用ntsysv --level方式



3. 自定义服务脚本

将脚本拷贝到 /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

CentOS 设置开机自启动 以及启动服务_第2张图片


4.通过修改配置

将服务启动命令加入到/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服务开机自启动,需要将完整路径写入,否则不起作用


二. 启动服务

1.绝对路径直接启动 (最靠谱的启动方法)

/opt/sbin/redis-server

/usr/local/nginx/sbin/nginx

2.常规启动方法

/etc/init.d/sshd start|restart|stop

也可以service sshd start|restart|stop

CentOS 设置开机自启动 以及启动服务_第3张图片

3.针对CentOS7

在以上两种的基础上还可以

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

你可能感兴趣的:(常用)