zoukankan      html  css  js  c++  java
  • Linux系统服务(daemon)(鸟哥Linux私房菜笔记)

    Linux系统服务(daemon)

    一、SystemV的init管理机制(脚本式启动)
    1.服务启动分类
    stand alone 独立启动模式
    super daemon 总管程序


    2.服务的启动、关闭与观察

    /etc/init.d/daemon [start|stop|status|restart]

    3.特点
    手动解决依赖性服务


    4.执行等级
    0~7
    /etc/rc.d/rc[0~7].d
    1:单人模式
    3:文字模式
    5:文字+图形模式


    5.设定开机预设启动命令
    # chkconfig daemon on
    # chkconfig daemon off
    # chkconfig --list daemon

    6.相关命令

    # /etc/init.d/daemon [start|stop|status|restart]
    # service daemon [start|stop|status|restart]
    # chkconfig daemon [on|off]
    # chkconfig --list daemon

    二、Systemd机制

    <一> 概论
    CentOS7之后
    1.优势
    (1)平行处理所有服务
    (2)systemd常驻内存
    (3)服务依赖性的自我检查
    (4)将多个daemons集合成target
    (5)向下兼容init服务脚本

    2.缺点
    (1)运行等级上仅有1,3,5对应到systemd某些target类型当中
    (2)systemctl不可自定参数
    (3)无法侦测root手动执行(不是用systemctl)启动的服务
    (4)systemd机制不支持与标准输入互动

    3.systemd配置文件目录[优先级逐渐增高]
    /usr/lib/systemd/system/ 类似于 /etc/init.d/daemon
    /run/systemd/system/
    /etc/systemd/system/ 类似于 /etc/rc.d/rc[0~6].d/

    4.服务类型单位[unit]分类
    unit:将过去daemon执行的脚本称为一个服务单位
    .service
    .target:执行环境类型
    .mount
    .automount
    .socket
    .timer:循环执行的服务
    .path:侦测特定文件或目录类型

    5.参数
    systemctl status atd.service
    atd.service - Job spooling tools
    Loaded: loaded (/usr/lib/systemd/system/atd.service; enabled)
    Active: active (running) since Mon 2015-08-10 19:17:09 CST; 5h 42min ago
    Main PID: 1350 (atd)
    CGroup: /system.slice/atd.service
    └─1350 /usr/sbin/atd -f

    <二>通过systemctl管理服务
    # systemctl [command] [unit]
      -start
      -status
      -stop
      -restart
      -reload:重读配置文件
      -enable:下次开机时,会被启动
      -disable:下次开机时,不会被启动

    # systemctl [command] [--type=TYPE] [--all]
      观察系统上服务
      command
        -list-units:列出所有的启动的unit
        -list-unit-file:列出/usr/lib/systemd/system/,将所有文件列表说明
      type
        service
        socket
        target

    e.g查出系统上是否有以CPU为名的服务
    # systemctl list-units --type=service --all | grep -i cpu

    # systemctl [command] [unit.target]
      通过systemctl管理不同的操作环境
      command
        get-default:取得目前的target
        set-default:设定后面跟定的target为默认target
        isolate:切换到后面接的模式
      unit.target
        graphical.target
        multi-user.target
        ... ...

    # systemctl list-dependencies [unit] [ --reverse]

      --reverse:反向追踪谁使用这个unit


      分析各服务之间的依赖性
      # systemctl list-dependencies multi-user.target

    <三>重要目录
    /usr/lib/systemd/system/
    使用CentOS官方提供的软件安装后,预设的启动脚本配置文件都在此目录


    /run/systemd/system/
    执行过程中,所产生的脚本。优先级高于/usr/lib/systemd/system/


    /etc/systemd/system
    根据主机系统需求,建立的执行脚本。执行优先级高于/run/systemd/system/


    /etc/sysconfig/*
    几乎所有服务都会将初始化的设定参数写入这个目录,如/etc/sysconfig/network-scripts/


    /var/lib/
    一些会产生数据的服务会写入此目录,如Mariadb


    /run/
    daemon暂存文件,包括lock file,pid file

    三、根据systemd机制,制作一个服务
    ##################backup.sh#######################
    #!/bin/bash
    source = "/etc /home /root /var/lib /var/spool/{cron,at,mail}"
    target = "/backups/backup-system-$(date + %Y-%m-%d).tar.gz"
    [! -d /backups] && mkdir /backups
    tar -zxvf ${target} ${source} &> /backups/backup.log
    ##################backup.sh#######################

    ##################backup.service####################
    [Unit]
    Description=backup my server
    Requires=atd.service

    [Service]
    Type=simple
    ExecStart=/bin/bash -c "echo /backps/backup.sh | at now"

    [Install]
    WantedBy=multi-user.target
    ##################backup.service####################


    timers.target
    功能类似crond 、atd
    详见鸟哥的Linux私房菜第十七章


    补充命令
    # systemctl show timers.target
    # 什么意思,敲出来看看吧。

  • 相关阅读:
    uboot 环境变量
    U-boot的环境变量: bootcmd 和bootargs
    linux中的rootfs/initrd/ramfs/initramfs
    关于Linux启动时挂载rootfs的几种方式
    u-boot-2011.06在基于s3c2440开发板的移植之引导内核与加载根文件系统
    MySQL列出当前月的每一天
    SQL 标量函数-----日期函数 day() 、month()、year()
    mysql 中 DATE_ADD函数和 DATE_SUB函数用法
    mysql 中 DATE_ADD(date,INTERVAL expr type)
    mysql中date_add()函数的使用?
  • 原文地址:https://www.cnblogs.com/herui1991/p/9076825.html
Copyright © 2011-2022 走看看