linux服务管理

一、简介与分类
1.系统的启动级别
  • linux系统有七个运行级别
  • 运行级别的相关命令
runlevel 查看系统的运行级别

说明:runlevel会输出两列数据,第一列是之前的运行级别,第二列是现在的运行级别
init level 切换系统的运行级别
注意:使用init 0和init 6进行关机或者重启不安全,有可能没有正确的关闭服务
  • 系统的默认运行级别
系统默认的运行级别在/etc/inittab的配置文件中。vim /etc/inittab,然后将id:3:initdefault:加入。其中3是你选择的运行级别,你可以自己更改。
注意:永远也不要将默认级别设置为0和6
2.服务的分类
从软件包的类别分有rpm包服务和源码包服务,而rpm包服务又分为独立服务和托管于xinetd的服务。独立服务是相互独立存在内存中的速度快,托管于xinetd的服务是先访问xinetd然后再访问这个服务

3.启动与自启动
启动:是表示当前服务的一种状态,代表服务正在运行,并能提供服务
自启动:是系统开机或者重启时服务自动启动
4.查询已安装的服务
查询rpm包已经安装的服务:
chkconfig --list
查询源码包的已安装的服务:
查看/usr/local/下的目录
5.服务与端口
不同的端口号就代表着不同的服务,chkconfig --list是代表已经安装的服务,而要哪些服务已经启动就需要通过查看端口号来查看。
netstat -tunlp 
选项:
-t:tcp,查看tcp的服务
-u:udp,查看udp的服务
-n:用端口号和ip显示
-a:all,全部的服务
-p:progress,打印进程号和进程名
-l:listen,处于监听状态的
chkconfig命令检查、设置系统的各种服务。这是Red Hat公司遵循GPL规则所开发的程序,它可查询操作系统在每一个执行等级中会执行哪些系统服务,其中包括各类常驻服务。谨记chkconfig不是立即自动禁止或激活一个服务,它只是简单的改变了符号连接。
chkconfig --list #列出所有的系统服务。
chkconfig --add httpd #增加httpd服务。
chkconfig --del httpd #删除httpd服务。
chkconfig --level 2345 httpd on #设置httpd在运行级别为2、3、4、5的情况下都是on(开启)的状态。   
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等级。
二、rpm包服务管理
linux系统启动都是以局对路径的方式,使用局对路径+可执行文件。而rpm包安装时默认会把软件的启动脚本放到/etc/init.d/(/etc/rc.d/init.d/)目录下。
1.独立服务启动
假如你的系统已经安装rpm报的httpd服务,那么我们有两种方式管理服务的启动、停止、重启。
  • /etc/init.d/httpd start|stop|restart
  • service httpd start|stop|restart
说明:service是RedHat系列开发的服务管理工具,原理就是在/etc/init.d/(/etc/rc.d/init.d/)查找相关服务,从而进行管理。
2.独立服务自启动
  • chkconfig --level 2345 httpd on #设置httpd在运行级别为2、3、4、5的情况下都是on(开启)的状态。
  • 修改/etc/rc.d/rc.local文件,将/etc/init.d/httpd start添加到其中。
  • 使用ntsysv命令管理自启动。这个命令是和chkconfig相关联的。
说明:/etc/rc.d/rc/local是每次开机和重启都会执行的脚本,所以写在里面的命令每次开机都会执行。
3.xinetd服务启动和自启动
  • chkconfig resync on #自启动同时启动
  • 使用ntsysv命令管理自启动。
说明:xinetd服务有一个特点就是设置它为自启动他就启动了,设置他为不自启动他就关闭了。
注意:使用chkconfig命令设置xinetd服务自启动时不能加--level,否则会报错。
三、源码包服务管理
源码包通常是安装在/usr/local/下,而启动命令通常在软件的bin/下,同样源码包的阿帕奇为例:
1.启动
  • 使用绝对路径:/usr/local/apche2/bin/apachectl start
  • 使用service命令,之前说过service会在/etc/init.d/寻找服务,并控制它。所以想让service管理源码包的服务只需要在/etc/init.d/下创建一个软连接就行。ln -s /etc/init.d/apche /usr/local/apche2/bin/apachectl,然后就可以用service进行管理了。
2.自启动
将/usr/local/apche2/bin/apachectl start写入/etc/rc.d/rc.local
3.让系统命令识别
每个被chkconfig管理的服务需要在对应的init.d下的脚本加上两行或者更多行的注释。第一行告诉chkconfig缺省启动的运行级以及启动和停止的优先级。如果某服务缺省不在任何运行级启动,那么使用-代替运行级。第二行对服务进行描述,可以用\跨行注释。
例如random.init包含三行:
 # chkconfig: 2345 20 80 # description: Saves and restores system entropy pool for \ # higher quality random number generation.
如何增加一个服务:
  • 服务脚本必须存放在/etc/ini.d/目录下或者在创建一个软连接
  • 在脚本里面上上边所说的注释
  • chkconfig --add servicename在chkconfig工具服务列表中增加此服务,此时服务会被在/etc/rc.d/rcN.d中赋予K/S入口了;
  • chkconfig --level 35 mysqld on修改服务的默认启动等级。
四、总结


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值