简述systemd的新特性及unit常见类型分析、使用systemd管理编译安装的nginx
程序员文章站
2022-07-07 11:31:58
1. systemd新特性 2. systemd的常见unit类型 3. Systemd关键特性 4. 编译安装nginx,并使用systemd管理nginx ......
1. systemd新特性
并行处理(同时启动)所有服务。 基于依赖关系定义的服务控制逻辑 系统状态快照 按需激活进程,只有第一次被访问时才会真正启动;
2. systemd的常见unit类型
service unit:文件扩展名为.service,主要用于定义系统服务; target unit:文件扩展名为.target,主要用于模拟实现运行级别; device unit:文件扩展名为.device,主要用于定义内核识别的设备; mounu unit:文件扩展名为.mount,主要用于定义文件系统挂载点; socket unit:文件扩展名为.sockett,主要用于标识进程间通信用到的socket文件; snapshot unit:文件扩展名为.snapshot,主要用于管理系统快照; swap unit:文件扩展名为.swap,主要用于标识swap设备; automount unit:文件扩展名为.automount,主要用于文件系统自动挂载点设置; path unit:文件扩展名为.path,主要用于定义文件系统中的文件或目录;
3. systemd关键特性
基于socket的激活机制:socket与程序分离; 基于bus的激活机制: 基于设备device的激活机制:能监控内核输出的硬件信息,当设备插入时一旦发现就创建设备文件,再自动挂载至某挂载点,如果挂载点不存在还能自动创建; 基于path的激活机制:系统可监控某目录或文件是否存在,如果文件存在,就立即激活一个服务或进程; 例如:某服务运行中突然崩溃,崩溃时能创建一个log或lock文件;一旦发现这个lock文件立即激活一个程序,如发送报告; 系统快照:能保存各unit的当前状态信息于持久存储设备中;因为systemd的所有管理都是通过unit实现的,回滚时使用; 向后兼容sysv init脚本:所以放在/etc/init.d/服务脚本也一样能靠systemd来启动;
4. 编译安装nginx,并使用systemd管理nginx
[allen@centos7 ~]$ tar xf nginx-1.8.1.tar.gz [allen@centos7 ~]$ cd nginx-1.8.1/ [allen@centos7 nginx-1.8.1]$ sudo ./configure --prefix=/usr/local/nginx1.8.1 --with-http_ssl_module [allen@centos7 nginx-1.8.1]$ make && make install [root@centos7 ~]# cat /etc/systemd/system/nginx.service [unit] description=nginx server daemon documentation=man:nginx(8) after=network.target [service] type=forking execstart=/usr/local/nginx1.8.1/sbin/nginx execreload=/usr/local/nginx1.8.1/sbin/nginx -s reload execstop=/usr/local/nginx1.8.1/sbin/nginx -s quit privatetmp=true [install] wantedby=multi-user.target [root@centos7 ~]# systemctl daemon-reload [root@centos7 ~]# systemctl enable nginx.service [root@centos7 ~]# systemctl start nginx.service [root@centos7 ~]# systemctl status nginx.service ● nginx.service - nginx server daemon loaded: loaded (/etc/systemd/system/nginx.service; enabled; vendor preset: disabled) active: active (running) since fri 2018-11-02 09:59:09 cst; 4min 15s ago docs: man:nginx(8) main pid: 7893 (nginx) cgroup: /system.slice/nginx.service ├─7893 nginx: master process /usr/local/nginx1.8.1/sbin/nginx ├─7904 nginx: worker process ├─7905 nginx: worker process ├─7906 nginx: worker process ├─7907 nginx: worker process └─7908 nginx: worker process nov 02 09:59:09 centos7.4 systemd[1]: starting nginx server daemon... nov 02 09:59:09 centos7.4 systemd[1]: started nginx server daemon. nov 02 09:59:43 centos7.4 systemd[1]: reloaded nginx server daemon.
上一篇: MYSQL存储过程即常用逻辑知识点总结