title: linux基础_8.linux服务管理.mddate: 2020-10-09 19:10:38
tags: linux
categories: linux基础

服务简介与分类

服务分类

  • rpm包默认安装的服务
    安装完成后与系统默认值一致
  • 独立的服务
    服务在内存中,用户访问直接响应,快但耗费内存资源

  • 基于xinetd的服务
    通过xinetd访问其管理的服务(本身不占用内存),优缺点相反

  • 源码包安装
    类似第三方

Xinetd服务

  1. xinetdextended internet daemonxinetd是新一代的网络守护进程服务程序,又叫超级Internet服务器。经常用来管理多种轻量级Internet服务。xinetd提供类似于inetd+tcp_wrapper的功能,但是更加强大和安全。

查询已安装服务

查看自启动状态(可附带查看所有已安装rpm包服务)

chkconfig --list        #查看服务自启动状态,限rpm包安装服务
-------------------

netconsole      0:off   1:off   2:off   3:off   4:off   5:off   6:off
network         0:off   1:off   2:on    3:on    4:on    5:on    6:off
  • 0~6:关机,单用户,不完全多用户,字符界面,未分配,重启
  • 2~5:on,不代表已经启动,指下次运行或重启系统时服务自启动

查看已启动服务

ps -aux|grep crond
netstat -tuln

缺点:netstat无法查看守护进程(没有端口)

源码包安装服务

查看服务安装位置,一般在/usr/local下

RPM安装服务与源码安装服务区别

  • 安装位置不同(导致管理方法不同)

    • 源码包安装在指定位置,一般是/usr/local
    • rpm包安装在默认位置,/etc(配置文件)
      /etc/.rc.d/init.d(启动脚本) 约定俗成
  • 删除

    • rpm 需要-e选项,安装包到处都是
    • 源码包,直接删除指定位置文件,不会有垃圾信息

service可启动rpm包安装的服务

RPM包安装服务的管理

文件位置

通用位置

/etc/rc.d/init.d启动脚本位置(独立)
/etc/init.d:启动脚本位置(独立同上,均为软连接)
/etc/sysconfig:初始化环境配置文件位置
/etc/:默认配置文件

/etc/xinetd.d服务的启动脚本
/etc/xinetd.conf:xinetd配置文件
/var/lib:服务产生数据的位置
/var/log/:日志

特殊位置-约定俗成

/var/www/html

独立服务

启动

/etc/inid.d/服务文件名 start|stop|restart|status        #status指查看启动状态

service 独立服务名 start|stop|restart|status        #到目录下寻找,redhat专有命令,简化操作
service --status-all    #列出系统所有rpm安装的服务启动状态

自启动(3)

方法1

chkconfig --level 2345 httpd on|off        #设置自启动,设置完成后目前服务不一定启动
chkconfig  httpd on|off            #级别默认

方法2

修改文件/etc/rc.d/rc.local(系统启动后,所有启动程序运行完成后输入用户名密码前,读取文件)

/etc/inid.d/服务文件名 start            #添加

linux基础-8-linux服务管理 - 图1

touch:第一次-新建文件,第二/n次:修改文件最后修改时间

方法3

使用ntsysv命令管理自启动,可管理独立/xinetd服务即rpm包服务,源码包服务默认不可设定

(rethat专有命令)

:自启动,去:取消自启动

linux基础-8-linux服务管理 - 图2

推荐方法2。陌生服务器,打开文件即可知道系统自启动哪些服务;有助于源码包和rpm包统一管理,避免chkconfig和配置文件之间设置产生冲突

xinetd

xinetd启动守护进程

最适合的应该是那些常用的网络服务,同时,这个服务的请求数目和频繁程度不会太高。系统默认使用xinetd的服务可以分为如下几类。

  • 标准Internet服务:telnet、ftp。
  • 信息服务:finger、netstat、systat。
  • 邮件服务:imap、imaps、pop2、pop3、pops。
  • RPC服务:rquotad、rstatd、rusersd、sprayd、walld。
  • BSD服务:comsat、exec、login、ntalk、shell、talk
  • 内部服务:chargen、daytime、echo、servers、services、time。
  • 安全服务:irc。
  • 其他服务:name、tftp、uucp。

具体使用xinetd的服务可在/etc/services文件中指出

启动

基于xinetd的服务越来越少(eg.不安全的远管telnet-server,sync网络备份),默认未安装xinetd服务

yum -y install xinetd
yun -y install telnet-server

检测是否安装

linux基础-8-linux服务管理 - 图3

启用服务,Telnet,xinetd和telnet服务安装完成后是默认禁用(disbale)的。

systemctl enable xinetd.service            #同时开机自启动

systemctl enable telnet.socket

linux基础-8-linux服务管理 - 图4

vi /etc/xinetd.d/telnet
#不存在可自行创建

#服务名称
#将语句 disable = yes 改成 disable = no 保存退出。激活 telnet 服务
#标志位REUSE,TCP/IP socket可重用
#使用tcp协议数据包,流数据
#允许多个连接同时连接
#启动服务用户为root
#服务的启动程序
#登陆失败后,记录用户UID
service telnet
{
    disable = no
    flags = REUSE
    socket_type = stream
    wait = no
    user = root
    server = /usr/sbin/in.telnetd
    log_on_failure += USERID
}

重启xinetd

service xinetd restart
或者
systemctl restart xinetd.service        #重新启动xinetd服务

启动服务

systemctl start telnet.socket
systemctl status telnet.socket
chkconfig --list

linux基础-8-linux服务管理 - 图5

自启动(2)

方法1

chkconfig telnet on

实际上xinetd启动和自启动通用

方法2

ntsysv

源码包安装服务的管理

启动

绝对路径调用启动脚本,不通过源码包启动脚本位置不同

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

查看源码包安装方法/源码包需要手动下载

linux基础-8-linux服务管理 - 图6

进入解压后的安装包,查看启动方式

linux基础-8-linux服务管理 - 图7

PREFIX- 变量,指安装位置,可以随意指定默认/usr/local
安装位置/bin/apachectl start

linux基础-8-linux服务管理 - 图8

报错不影响

如果用service httpd start启动源码包安装,报错80端口冲突

linux基础-8-linux服务管理 - 图9

自启动

类似rpm包安装的服务自启动,修改文件

vi /etc/rc.d/rc.local        加入
/usr/local/apache2/bin/apachectl start

linux基础-8-linux服务管理 - 图10

命令通用

源码包服务被服务管理命令(service)识别

软连接到init.d

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

service命令归根结底是在搜索库/etc/init.d

linux基础-8-linux服务管理 - 图11

该目录下均为rpm包安装的服务

源码包apache服务能被chkconfig与ntsysv命令管理自启动

linux基础-8-linux服务管理 - 图12

# vi /etc/init.d/apache
# chkconfig:35 86 76
# 指定运行顺序,启动顺序,关闭顺序        不能与系统现有顺序冲突
#description:source package apache
#说明

linux基础-8-linux服务管理 - 图13

查看系统现有顺序

linux基础-8-linux服务管理 - 图14

linux基础-8-linux服务管理 - 图15

查看状态,自启动

linux基础-8-linux服务管理 - 图16

服务管理总结

rpm包安装的服务

启动

均可使用

service 服务名 start|stop|restart

xinetd 服务本身也可以用service,其包含的服务需要用systemctl, 例如

systemctl start|restart|stop (服务名)sshd.service

启用/禁用服务

systemctl enable xinetd.service            #同时开机自启动
systemctl disable xinetd.service

自启动(独立服务)

chkconfig修权限

chkconfig  httpd on|off            #级别默认

修改文件 /etc/rc.d/rc.local,加入

/etc/inid.d/服务文件名 start            #添加

ntsysv命令,[+-]*

自启动(xinetd)

chkconfig telnet(服务名) on

ntsysv命令

systemctl enable xinetd.service

源码包安装的服务

启动

绝对路径调用启动脚本(启动方法可在安装文件中的INSTALL中查看)

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

自启动

修改文件vi /etc/rc.d/rc.local