linux 认识系统服务

一. daemon与service学习总结

  • daemon的意思是守护进程,service的意思是服务,要提供服务就需要有程序支持,只要有运行的程序就需要有程序的守护进程,那么daemon就是提供服务背后程序的守护进程。
  • daemon在linux中可以分为两大类。第一大类为stand alone daemon,第二大类为super daemon。
  • stand alone daemon是独立守护一个程序的进程,比如httpd、ftp。
  • super daemon是守护了一堆程序的进程,比如rsync、Telnet等。
  • 服务通过端口提供,端口和服务的对应关系就记录在/etc/services。
    • linux 认识系统服务
      /etc/init.d/* :启动脚本放置处
      系统上几乎所有的服务启动脚本都放置在这里!事实上这是公认的目录,我们的 CentOS 实际上放置在 /etc/rc.d/init.d/ 啦! 不过还是有配置连结档到 /etc/init.d/ 的!既然这是公认的目录,因此建议您记忆这个目录即可!
      
      /etc/sysconfig/* :各服务的初始化环境配置文件
      几乎所有的服务都会将初始化的一些选项配置写入到这个目录下,举例来说,登录档的 syslog 这支 daemon 的初始化配置就写入在 /etc/sysconfig/syslog 这里呢!而网络的配置则写在 /etc/sysconfig/network 这个文件中。 所以,这个目录内的文件也是挺重要的;
      
      /etc/xinetd.conf, /etc/xinetd.d/* :super daemon 配置文件
      super daemon 的主要配置文件 (其实是默认值) 为 /etc/xinetd.conf ,不过我们上面就谈到了, super daemon 只是一个统一管理的机制,他所管理的其他 daemon 的配置则写在 /etc/xinetd.d/* 里头喔!
      
      /etc/* :各服务各自的配置文件
      大家的配置文件都是放置在 /etc/ 底下的喔!
      
      /var/lib/* :各服务产生的数据库
      一些会产生数据的服务都会将他的数据写入到 /var/lib/ 目录中。举例来说,数据库管理系统 MySQL 的数据库默认就是写入 /var/lib/mysql/ 这个目录下啦!
      
      /var/run/* :各服务的程序之 PID 记录处
      可以使用讯号 (signal) 来管理程序, 既然 daemon 是程序,所以当然也可以利用 kill 或 killall 来管理啦!不过为了担心管理时影响到其他的程序, 因此 daemon 通常会将自己的 PID 记录一份到 /var/run/ 当中!例如登录文件的 PID 就记录在 /var/run/syslogd.pid 这个文件中。如此一来, /etc/init.d/syslog 就能够简单的管理自己的程序啰。
      daemon的配置文件位置
  • stand alone daemon服务的启动方法(centos6以下):

    • linux 认识系统服务
      第一种启动方式:
      
      [root@www ~]# /etc/init.d/syslog
      
      用法: /etc/init.d/syslog {start|stop|status|restart|condrestart}
      
      # 什么参数都不加的时候,系统会告诉你可以用的参数有哪些,如上所示。
      
      
      
      范例一:观察 syslog 这个 daemon 目前的状态
      
      [root@www ~]# /etc/init.d/syslog status
      
      syslogd (pid 4264) 正在运行...
      
      klogd (pid 4267) 正在运行...
      
      # 代表 syslog 管理两个 daemon ,这两个 daemon 正在运行中啦!
      
      
      
      范例二:重新让 syslog 读取一次配置文件
      
      [root@www ~]# /etc/init.d/syslog restart
      
      正在关闭核心记录器:          [  确定  ]
      
      正在关闭系统记录器:          [  确定  ]
      
      正在启动系统记录器:          [  确定  ]
      
      正在启动核心记录器:          [  确定  ]
      
      [root@www ~]# /etc/init.d/syslog status
      
      syslogd (pid 4793) 正在运行...
      
      klogd (pid 4796) 正在运行...
      
      # 因为重新启动过,所以 PID 与第一次观察的值就不一样了!这样了解乎?
      
      
      第二种启动方式:
      
      [root@www ~]# service [service name] (start|stop|restart|...)
      
      [root@www ~]# service --status-all
      
      选项与参数:
      
      service name:亦即是需要启动的服务名称,需与 /etc/init.d/ 对应;
      
      start|...   :亦即是该服务要进行的工作。
      
      --status-all:将系统所有的 stand alone 的服务状态通通列出来
      
      
      
      范例三:重新启动 crond 这支 daemon :
      
      [root@www ~]# service crond restart
      
      [root@www ~]# /etc/init.d/crond restart
      
      # 这两种方法随便你用哪一种来处理都可以!不过鸟哥比较喜欢使用 /etc/init.d/*
      
      
      
      范例四:显示出目前系统上面所有服务的运行状态
      
      [root@www ~]# service --status-all
      
      acpid (pid 4536) 正在运行...
      
      anacron 已停止
      
      atd (pid 4694) 正在运行...
      
      ....(底下省略)....
      stand alone daemon服务启动方法

  • super daemon服务的启动方法(centos6以下):
    • linux 认识系统服务
      [root@www ~]# grep -i 'disable' /etc/xinetd.d/*
      
      ....(前面省略)....
      
      /etc/xinetd.d/rsync:          disable = yes
      
      /etc/xinetd.d/tcpmux-server:  disable = yes
      
      /etc/xinetd.d/time-dgram:     disable = yes
      
      /etc/xinetd.d/time-stream:    disable = yes
      
      # 1. 先修改配置文件成为启动的模样:
      
      [root@www ~]# vim /etc/xinetd.d/rsync
      
      # 请将 disable 那一行改成如下的模样 (原本是 yes 改成 no 就对了)
      
      service rsync
      
      {
      
              disable = no
      
      ....(后面省略)....
      
      
      
      # 2. 重新启动 xinetd 这个服务
      
      [root@www ~]# /etc/init.d/xinetd restart
      
      正在停止 xinetd:             [  确定  ]
      
      正在激活 xinetd:             [  确定  ]
      
      
      
      # 3. 观察启动的端口
      
      [root@www ~]# grep 'rsync' /etc/services  <==先看看端口是哪一号
      
      rsync           873/tcp               # rsync
      
      rsync           873/udp               # rsync
      
      [root@www ~]# netstat -tnlp | grep 873
      
      tcp    0 0 0.0.0.0:873      0.0.0.0:*     LISTEN      4925/xinetd
      
      # 注意看!启动的服务并非 rsync 喔!而是 xinetd ,因为他要控管 rsync 嘛!
      super daemon服务启动方法

       

二. 解析 super daemon 的配置文件

三. 服务的防火墙管理 xinetd, TCP Wrappers

四. 系统开启的服务

上一篇:linux-TFTP服务


下一篇:KubeVela 1.0 :开启可编程式应用平台的未来