关于linux服务启动与自启动

一、linux系统运行级别

介绍服务自启动之前先了解一下linux系统运行级别,linux系统一共有7种运行级别,从0到6,系统默认是在3(id:3:initdefault:)级别下运行。

修改系统默认运行级别可以vim /etc/inittab里进行修改(注意不要把默认运行级别设置为0或6,不然系统一开机就是不停的关机或重启)

runlevel

#查看系统运行级别

系统运行级别:

0:关机

1:单用户

2:不完全多用户,不含NFS服务

3:完全多用户

4:未分配

5:图形界面

6:重启

二、服务与端口

关于linux服务启动与自启动_第1张图片
linux服务的分类

如何查询已安装的服务:

(1)查询RPM包安装的服务

chkconfig --list       

#该命令可以看到所有RPM包安装服务的自启动状态

(2)源码包安装的服务

#查看服务的安装位置,一般是/usr/local下

(3)端口查看

vim /etc/services对常规端口做了罗列,共有65536(从0到65535)个,其中10000以内被系统预留了。

查看开启了哪些服务可以使用命令netstat -tlunp

#  -t : 列出tcp的数据

#  -u : 列出udp的数据

#  -l : 列出正在监听的网络服务

#  -n : 用端口号来显示服务,而不是服务名  

#  -p : 列出该服务的进程ID(PID)

#  -a : 可以看到正在连接的

三、服务管理

(1)RPM包服务的管理(xinetd服务越来越少,这里不做考虑,一下针对的是独立服务)

         RPM 包安装有默认位置,如下:

         /etc/init.d/ : 启动脚本位置

         /etc/sysconfig/ : 初始化环境配置文件位置

         /etc/ : 配置文件位置

         /etc/xinetd.cong : xinetd配置文件

         /etc/xinetd/ : 基于xinetd服务的启动脚本

         /var/lib/ : 服务产生的数据

        /var/log/ : 日志位置

         独立服务的启动:

         1./etc/init.d/独立服务名 start|stop|status|restart

            如:/etc/init.d/httpd start

            #这种是通过绝对路径来启动,在/etc/rc.d/init.d下也有相同的脚本,软链接而已,都可以用,所以可以/etc/rc.d/init.d/httpd start

          2.service 独立服务名 start|stop|status|restart

             如:service mysqld status

              #注意service是redhat系列独有的命令,使用的时候要注意

           独立服务的自启动:

           1. chkconfig --list | grep mysqld

                #查看是否设置自启动(注意不是当前该服务是否启动,是开机时是否自启动)

                chkconfig --level 2345 mysqld on

                #设置自启动,2345代表系统的运行级别,即设置在2345级别下开机自启动,--level可以省略

                chkconfig --level 2345 mysqld off

                 #设置在2345级别下开机不自启动

              2. 修改/etc/rc.d/rc.local或者/etc/rc.local文件,加入启动脚本

              3.使用ntsysv命令管理自启动(这种是界面的,本质上和1里的chkconfig是同一种方式)

(2)源码包服务的管理

                源码包服务的启动:

                1. 使用绝对路径,调用启动脚本来启动。不同的源码包的启动脚本不同。可以查看源码包的安装说明,查看启动脚本的方法。

                 如:/usr/local/apache2/bin/apachectl start|stop

                 2. 让源码包服务被服务管理命令识别(即想用service或者ntsysv来启动)

                  如:让源码包的apache服务能被service命令管理启动(把启动命令软链接到init.d下)

                  ln -s /usr/local/apache2/bin/apachectl /etc/init.d/

                  然后就可以这样启动:service apachectl start

                  3. 如:让源码包的apache服务能被chkconfig与ntsysv命令管理自启动

                   vim  /etc/init.d/apache加入如下两句

                    chkconfig:35 86 77

                     #指定httpd脚本可以被chkconfig命令管理。格式是chkconfig : 运行级别  启动顺序  关闭顺序(先到cd /etc/rc3.d/下面看一下,3代表                      的是运行级别,s打头的是开始,k打头的是kill,保证该序号不存在就行)

                     description:source package apache

                      #说明,内容随意

                      然后chkconfig --add apachectl

                      再次chkconfig --list | grep apachectl就有了

                      源码包服务的自启动

                      1. vim /etc/rc.d/rc.local加入

                        /usr/local/apache2/bin/apachectl start

                       2. 见上面的------>独立服务自启动的3.如:让源码包的apache服务能被chkconfig与ntsysv命令管理自启动,然后当成独立服务

你可能感兴趣的:(关于linux服务启动与自启动)