1. systemd新特性

  1. 并行处理(同时启动)所有服务。
  2. 基于依赖关系定义的服务控制逻辑
  3. 系统状态快照
  4. 按需激活进程,只有第一次被访问时才会真正启动;

2. systemd的常见unit类型

  1. Service unit:文件扩展名为.service,主要用于定义系统服务;
  2. Target unit:文件扩展名为.target,主要用于模拟实现运行级别;
  3. Device unit:文件扩展名为.device,主要用于定义内核识别的设备;
  4. Mounu unit:文件扩展名为.mount,主要用于定义文件系统挂载点;
  5. Socket unit:文件扩展名为.sockett,主要用于标识进程间通信用到的socket文件;
  6. snapshot unit:文件扩展名为.snapshot,主要用于管理系统快照;
  7. Swap unit:文件扩展名为.swap,主要用于标识swap设备;
  8. Automount unit:文件扩展名为.automount,主要用于文件系统自动挂载点设置;
  9. Path unit:文件扩展名为.path,主要用于定义文件系统中的文件或目录;

3. Systemd关键特性

  1. 基于socket的激活机制:socket与程序分离;
  2. 基于bus的激活机制:
  3. 基于设备device的激活机制:能监控内核输出的硬件信息,当设备插入时一旦发现就创建设备文件,再自动挂载至某挂载点,如果挂载点不存在还能自动创建;
  4. 基于path的激活机制:系统可监控某目录或文件是否存在,如果文件存在,就立即激活一个服务或进程;
  5. 例如:某服务运行中突然崩溃,崩溃时能创建一个loglock文件;一旦发现这个lock文件立即激活一个程序,如发送报告;
  6. 系统快照:能保存各unit的当前状态信息于持久存储设备中;因为systemd的所有管理都是通过unit实现的,回滚时使用;
  7. 向后兼容sysv init脚本:所以放在/etc/init.d/服务脚本也一样能靠systemd来启动;

4. 编译安装nginx,并使用systemd管理nginx

  1. [Allen@centos7 ~]$ tar xf nginx-1.8.1.tar.gz
  2. [Allen@centos7 ~]$ cd nginx-1.8.1/
  3. [Allen@centos7 nginx-1.8.1]$ sudo ./configure --prefix=/usr/local/nginx1.8.1 --with-http_ssl_module
  4. [Allen@centos7 nginx-1.8.1]$ make && make install
  5. [root@centos7 ~]# cat /etc/systemd/system/nginx.service
  6. [Unit]
  7. Description=nginx server daemon
  8. Documentation=man:nginx(8)
  9. After=network.target
  10. [Service]
  11. Type=forking
  12. ExecStart=/usr/local/nginx1.8.1/sbin/nginx
  13. ExecReload=/usr/local/nginx1.8.1/sbin/nginx -s reload
  14. ExecStop=/usr/local/nginx1.8.1/sbin/nginx -s quit
  15. PrivateTmp=true
  16. [Install]
  17. WantedBy=multi-user.target
  18. [root@centos7 ~]# systemctl daemon-reload
  19. [root@centos7 ~]# systemctl enable nginx.service
  20. [root@centos7 ~]# systemctl start nginx.service
  21. [root@centos7 ~]# systemctl status nginx.service
  22. nginx.service - nginx server daemon
  23. Loaded: loaded (/etc/systemd/system/nginx.service; enabled; vendor preset: disabled)
  24. Active: active (running) since Fri 2018-11-02 09:59:09 CST; 4min 15s ago
  25. Docs: man:nginx(8)
  26. Main PID: 7893 (nginx)
  27. CGroup: /system.slice/nginx.service
  28. ├─7893 nginx: master process /usr/local/nginx1.8.1/sbin/nginx
  29. ├─7904 nginx: worker process
  30. ├─7905 nginx: worker process
  31. ├─7906 nginx: worker process
  32. ├─7907 nginx: worker process
  33. └─7908 nginx: worker process
  34. Nov 02 09:59:09 centos7.4 systemd[1]: Starting nginx server daemon...
  35. Nov 02 09:59:09 centos7.4 systemd[1]: Started nginx server daemon.
  36. Nov 02 09:59:43 centos7.4 systemd[1]: Reloaded nginx server daemon.

简述systemd的新特性及unit常见类型分析、使用systemd管理编译安装的nginx的更多相关文章

  1. systemd的新特性及unit常见类型分析与awk用法示列

    简述systemd的新特性及unit常见类型分析,能够实现编译安装的如nginx\apache实现通过systemd来管理 系统引导的新特性 系统引导时实现服务启动: 按需激活进程: 系统状态快照: ...

  2. systemd的新特性及常见的systemd unit类型分析

    systemd概述 )systemd是一种新的linux系统服务管理器,用于替换init系统,能够管理系统启动过程和系统服务,一旦启动起来,就将监管整个系统.在centos7系统中,PID1被syst ...

  3. 已经编译安装的nginx/tenginx编译增加新模块

    只适用于自行编译安装的nginx配置 业务变更带来的Nginx增加模块需求 由于业务从php转为go开发,需要用到Http2的协议.这种协议在Nginx上需要http_v2_module这个模块的支持 ...

  4. Java 8 新特性之泛型的类型推导

    1. 泛型究竟是什么? 在讨论类型推导(type inference)之前,必须回顾一下什么是泛型(Generic).泛型是Java SE 1.5的新特性,泛型的本质是参数化类型,也就是说所操作的数据 ...

  5. mysql8.0 新特性,对json类型的常用操作

    mysql8 新特性-json数据类型操作 -- 根据key(可多个)获取value SELECT JSON_EXTRACT('{"id": 14, "name" ...

  6. 红帽RedHat 8.0新特性(网络、yum源、Web界面管理等)

    1.Red Hat8 配置静态IP 注意:Red Hat8网络管理默认使用NetworkManager,而不是之前版本的network. 按照之前版本我们一般通过配置文件设置静态IP地址信息,如下: ...

  7. java8 新特性 -Optional的常见用法

    1. Optional 一. 简介 Opitonal是java8引入的一个新类,目的是为了解决空指针异常问题.本质上,这是一个包含有可选值的包装类,这意味着 Optional 类既可以含有对象也可以为 ...

  8. 使用C#的新特性:可空类型

    随着C#语言最新标准的出炉,现在它也提供了对可空类型的支持.这个小变化将会在处理那些包括可选项的数据库记录时非常有用.当然在其他地方,它也是非常有用的. 简单说来,可空数据类型就是包含了所定义的数据类 ...

  9. Java8新特性 重复注解与类型注解

    import java.lang.annotation.Repeatable; import java.lang.annotation.Retention; import java.lang.anno ...

随机推荐

  1. lucene源码分析的一些资料

    针对lucene6.1较新的分析:http://46aae4d1e2371e4aa769798941cef698.devproxy.yunshipei.com/conansonic/article/d ...

  2. AT2004 Anticube

    https://www.zybuluo.com/ysner/note/1304774 题面 给定\(n\)个数\(s_i\),要求从中选出最多的数,满足任意两个数之积都不是完全立方数. \(n\leq ...

  3. Oracle强杀进程

      1.找到sid,serial#: SELECT /*+ rule */ s.username, l.type, decode(l.type,'TM','TABLE LOCK',           ...

  4. bzoj2132

    最小割 套路最小割... 盗一波图 来自GXZ神犇 对于这样的图,我们要么割ai,bj,要么割bi,aj,要么割ai,ci+cj,aj,要么割bi,ci+cj,bj,然后这样建图跑最小割就行了 但这不 ...

  5. noip2016 小结(ac两题+学习总结)

    NOIP2016考试小结 DAY 1 T1 题目描述 小南有一套可爱的玩具小人, 它们各有不同的职业. 有一天, 这些玩具小人把小南的眼镜藏了起来. 小南发现玩具小人们围成了一个圈,它们有的面朝圈内, ...

  6. js获取标签的三种方式

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  7. jwt的应用生成token,redis做储存

    解释一下JWT JWT就是一个字符串,经过加密处理与校验处理的字符串,由三个部分组成.基于token的身份验证可以替代传统的cookie+session身份验证方法.三个部分分别如下: header. ...

  8. FTP文件服务器

    import java.io.InputStream; import java.io.Serializable; import lombok.Data; @Data public class FtpB ...

  9. linux C编程 gdb的使用

    linux C编程 gdb的使用 通常来说,gdb是linux在安装时自带的,在命令行键入"gdb"字符并按回车键会启动gdb调试环境. 1.gdb的基本命令 命令 说明 file ...

  10. .Net MVC 前台验证跟后台验证

    前台验证: 首先你得有一个参数类,参数类代码如下 验证标记总结 [DisplayName("邮箱:")]        [Required(ErrorMessage = " ...