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
# 什么意思,敲出来看看吧。

Linux系统服务(daemon)(鸟哥Linux私房菜笔记)的更多相关文章

  1. 41个linux命令大全(鸟哥的私房菜)

    转http://www.xmws.cn/show-87-419-1.html 41个linux命令大全 发布作者:微思网络   发布时间:2017-01-10   浏览量:709次 学过linux的人 ...

  2. [Linux]《鸟哥的私房菜》笔记 (缓慢更新)

    暂时不更新了..这几天一看起书来发现内容很多,这样写blog太慢,也没意义.所以现在是每天看书,在笔记本上记笔记,再配合着<操作系统>和 linux内核 加深理解.往后会以心得体会为主写一 ...

  3. linux: 鸟哥的私房菜

    鸟哥的私房菜 http://vbird.dic.ksu.edu.tw/linux_basic/0320bash.php

  4. 鸟哥的私房菜:Linux文件与目录管理

    1. 目录与路径 1.1 相对路径与绝对路径           绝对路径:路径的写法『一定由根目录 / 写起』,如:/usr/share/doc 这个目录.     相对路径:路径的写法『不是由 / ...

  5. (整理)ubuntu 的 相关知识(来自 鸟哥的私房菜)

    1. Linux 文件权限概念 $ ls 察看文件的指令 $ ls -al 出所有的文件详细的权限与属性 (包含隐藏档,就是文件名第一个字符为『 . 』的文件) 在你第一次以root身份登入Linux ...

  6. 鸟哥的私房菜:Bash shell(六)-管道命令

    就如同前面所说的, bash 命令执行的时候有输出的数据会出现! 那么如果这群数据必需要经过几道手续之后才能得到我们所想要的格式,应该如何来设定? 这就牵涉到管线命令的问题了 (pipe) ,管线命令 ...

  7. 鸟哥的私房菜上 xpenguins 设备(ubuntu 12.04)

    看了一个暑假linux,我觉得很辛苦啊,要很好地利用linux并不是的easy... 今天装了一下鸟哥课后给的xpenguins软件,就是桌面特性软件.会有非常多企鹅下落,本以为能够非常轻松的搞定.没 ...

  8. 鸟哥的私房菜:Bash shell(四)-Bash shell的使用环境

    Bash shell(四)-Bash shell的使用环境   是否记得我们登入主机的时候,屏幕上头会有一些说明文字,告知我们的 Linux 版本啊什么的, 还有,登入的时候,我们还可以给予使用者一些 ...

  9. 鸟哥的私房菜:Bash shell(二)-变量的丰富功能

    一  Shell变量的取用与设定,变量规则 由于系统需要一些变量来提供他数据的存取,所以就有一些所谓的『环境变量』 需要来读入系统中了!这些环境变量例如 PATH.HOME.MAIL.SHELL.为了 ...

  10. Linux根目录详解-转自鸟哥的私房菜

    转自:http://myhat.blog.51cto.com/391263/107931/   *根目录(/)的意义与内容: 根目录是整个系统最重要的一个目录,因为不但所有的目录都是由根目录衍生出来的 ...

随机推荐

  1. Redmine使用学习

    注:陈刚在公司架设了 Redmine xx公司产品档案管理系统,并且与tortoisegit集成了在一起:真心不错!比如git:192.168.10.46,而redmine:192.168.10.46 ...

  2. 【腾讯敏捷转型No.5】需求没做完可以发布嘛

    很多人对于敏捷的第一直觉就是“快”,开发快,测试快,发布快,并不知道如何把这个“快”应用到敏捷实践中,下面我们来分析一下导致工作效率低的核心原因.没有使用敏捷之前,在大多数情况下,项目管理都需要开各种 ...

  3. Leetcode名企之路

    微信扫码关注,每天推送一道面试题! 公众号:Leetcode名企之路 作者简介 知乎ID: 码蹄疾 码蹄疾,毕业于哈尔滨工业大学. 小米广告第三代广告引擎的设计者.开发者: 负责小米应用商店.日历.开 ...

  4. Windows10系统在VMware中安装CentOS7操作系统并实现图形化用户界面Gnome

    由于操作系统课程需要,我尝试在windows10环境下安装linux虚拟机,最终采用centOS7和Gnome图形用户界面,在安装和使用过程中出现一些问题,在这里将其记录下来,以便后续查阅. 第一部分 ...

  5. 基于CLGeocoder - 反地理编码

    iOS中CoreLocatio框架中的CLGeocoder 类不但为我们提供了地理编码方法,而且还提供了反地理编码: 同样需要导入框架: #import <CoreLocation/CoreLo ...

  6. Dynamics CRM 常用的JS

    常用JS(一) Xrm.Page.context.getUserId():       //获取当前用户id Xrm.Page.context.getUserName():       //获取当前用 ...

  7. 跟着马哥学python-day02

    1. 运算符 计算机可以进行的运算有很多种,可不只加减乘除这么简单,运算按种类可分为算数运算.比较运算.逻辑运算.赋值运算.成员运算.身份运算.位运算. 1.1 算数运算 以下假设变量:a=10,b= ...

  8. docker环境下构建flannel 网络

    flannel 是coreos 开发的网络解决方案,为每一台主机分配一个 subnet,容器从此subnet 中分配ip,ip可以在主机间路由.每个subnet从更大的ip池中划分,为了在各个主机间共 ...

  9. 第三章:文件I/O

    本章开始讨论UNIX系统的文件I/O函数,包括打开文件.读文件.写文件等. UNIX系统中的大多数文件I/O只需要用到5个函数:open.read.write.lseek和close.它们每执行一次都 ...

  10. 旁听<基因编辑与精准医疗>(北京大学)

    昨天去北大生命科学院听了一场魏文胜教授关于基因方面的讲座.会场人不算太多,比起上次听城市规划,场面略显冷清.也能从一个侧面反映,关注基础科学领域的人虽然有,但是不是很多. 开场魏教授用了宣传海报作为导 ...