一、linux系统运行级别
介绍服务自启动之前先了解一下linux系统运行级别,linux系统一共有7种运行级别,从0到6,系统默认是在3(id:3:initdefault:)级别下运行。
修改系统默认运行级别可以vim /etc/inittab里进行修改(注意不要把默认运行级别设置为0或6,不然系统一开机就是不停的关机或重启)
runlevel
#查看系统运行级别
系统运行级别:
0:关机
1:单用户
2:不完全多用户,不含NFS服务
3:完全多用户
4:未分配
5:图形界面
6:重启
二、服务与端口
如何查询已安装的服务:
(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命令管理自启动,然后当成独立服务