zoukankan      html  css  js  c++  java
  • linux 系统服务管理

    一. daemon与service学习总结

    如下内容为centos6及以下的:

    • daemon的意思是守护进程,service的意思是服务,要提供服务就需要有程序支持,只要有运行的程序就需要有程序的守护进程,那么daemon就是提供服务背后程序的守护进程。
    • daemon在linux中可以分为两大类。第一大类为stand alone daemon,第二大类为super daemon。
    • stand alone daemon是独立守护一个程序的进程,比如httpd、ftp。
    • super daemon是守护了一堆程序的进程,比如rsync、Telnet等。
    • 服务启动需要关注的基本文件和原理:
      • /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 就能够简单的管理自己的程序。
    • 服务通过端口提供,端口和服务的对应关系就记录在/etc/services。
      • /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以下):
      • 第一种启动方式:
        
        [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以下):
      • [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服务启动方法

    二. 新旧版本命令对比

    centos6 和 centos 7命令对比。

  • 相关阅读:
    MongoDB 基础命令 (MongoDB Shell)
    MongoDB 在 Mac OSX 平台安装
    数组根据index拆分和查询下标
    简单介绍递归算法以及应用场景
    android studio ndk开发环境搭建
    基于vue开发的多功能的时间选择器组件,开箱即用
    简单了解JS中的几种遍历
    零基础学习webpack打包管理
    让你高效的理解JavaScript中的同步、异步和事件循环
    学习flex布局(弹性布局)
  • 原文地址:https://www.cnblogs.com/wangzengyi/p/12451828.html
Copyright © 2011-2022 走看看