使用systemd管理程序进程
使用systemd管理程序
示例(源代码安装nginx) :
vim /usr/lib/systemd/system/nginx.service
[Unit]
Description=The nginx HTTP and reverse proxy server
After=network.target remote-fs.target nss-lookup.target[Service]
Type=forking
ExecStartPre=/service/nginx/sbin/nginx -t -c /service/nginx/conf/nginx.conf
ExecStart=/service/nginx/sbin/nginx -c /service/nginx/conf/nginx.conf
ExecReload=/service/nginx/sbin/nginx -s reload
Restart=on-failure
RestartSec=10s
TimeoutSe=5
KillMode=control-group
LimitNOFILE=65536[Install]
WantedBy=multi-user.target
[Unit]
区块说明
描述,启动顺序与依赖关系
键值 | 功能描述 |
---|---|
Description | 当前服务的简单描述 |
Documentation | 文档位置 |
After | (非依赖)启动顺序,其他服务启动后,本程序启动 |
Before | (非依赖)启动顺序,本程序启动后,再启动其他服务 |
Wants | (弱依赖),其他程序启动失败或停止运行,不影响本程序继续执行 |
Requires | (强依赖),其他程序启动失败或停止运行,本程序也必须退出 |
[Service]
区块说明
定义如何启动当前服务
键值 | 功能描述 |
---|---|
Type | 定义启动类型 |
ExecStartPre | 启动服务之前执行的命令 |
ExecStart | 启动进程时执行的命令 |
ExecStartPost | 启动服务之后执行的命令 |
ExecReload | 重启服务时执行的命令 |
ExecStop | 停止服务时执行的命令 |
ExecStopPost | 停止服务之后执行的命令 |
Restart | 守护进程,当服务进程正常退出、异常退出、被杀死、超时的时候, 是否重新启动该服务。 |
RestartSec | 服务重启之间,等待的秒数 |
TimeoutStartSec | 服务允许的最大启动时长 |
TimeoutStopSec | 服务允许的最大停止时长 |
TimeoutSe |
同时设置TimeoutStartSec 与TimeoutStopSec
|
KillMode | 服务停止时,杀死进程的方法 |
PrivateTmp |
服务启动时在/tmp 目录中生成缓存目录
|
LimitNOFILE | 最大打开文件数 |
[Install]
区块说明
定义如何安装这个配置文件,即怎样做到开机启动。
键值 | 功能描述 |
---|---|
WantedBy | 表示该服务所在的 Target.默认填写(multi-user.target) |
修改配置文件后重启
systemctl daemon-reload
部分键值可用项
Type
字段定义启动类型。它可以设置的值如下
类型 | 功能描述 |
---|---|
simple |
(默认值)ExecStart 字段启动的进程为主进程
|
forking |
ExecStart 字段将以fork() 方式启动,此时父进程将会退出,子进程将成为主进程
|
oneshot |
类似于simple ,但只执行一次,Systemd会等它执行完,才启动其他服务
|
dbus |
类似于simple ,但会等待D-Bus 信号后启动
|
notify |
类似于simple ,启动结束后会发出通知信号,然后Systemd 再启动其他服务
|
idle |
类似于simple ,但是要等到其他任务都执行完,才会启动该服务。一种使用场合是为让该服务的输出,不与其他服务的输出相混合
|
Restart
字段定义启动类型。它可以设置的值如下
类型 | 功能描述 |
---|---|
no | (默认值)退出后不会重启 |
on-success | 只有正常退出时(退出状态码为0),才会重启 |
on-failure | 非正常退出时(退出状态码非0),包括被信号终止和超时,才会重启 |
on-abnormal | 只有被信号终止和超时,才会重启 |
on-abort | 只有在收到没有捕捉到的信号终止时,才会重启 |
on-watchdog | 超时退出,才会重启 |
always | 不管是什么退出原因,总是重启 |
对于守护进程,推荐设为
on-failure
。对于那些允许发生错误退出的服务,可以设为on-abnormal
。
KillMode
字段定义启动类型。它可以设置的值如下
类型 | 功能描述 |
---|---|
control-group | (默认值)当前控制组里面的所有子进程,都会被结束 |
process | 只杀主进程 |
mixed | 主进程将收到 SIGTERM 信号,子进程收到 SIGKILL 信号 |
none | 没有进程会被杀掉,只是执行服务的 stop 命令 |
转载于:https://www.cnblogs.com/taoyuxuan/p/11468172.html
使用systemd管理程序进程相关推荐
- DNS服务器分离解析 RAID阵列 进程管理 日志管理 systemd作用
目录 分离解析 什么是分离解析 BIND的view视图 案例 案例2 RAID阵列概述 • 廉价冗余磁盘阵列 • RAID 0,条带模式 • RAID 1,镜像模式 • RAID5,高性价比模式 • ...
- 进程管理程序 - Supervisor - 学习/实践
1.应用场景 主要用于在UNIX-like上管理程序进程,如,程序进程启动,停止,守护等. 如:pyhon,php, jar脚本的后台任务运行. 2.学习/操作 1.文档阅读 Introduction ...
- linux 自启动服务 SYSV,技术|LFCS 系列第七讲:通过 SysVinit、Systemd 和 Upstart 管理系统自启动进程和服务...
几个月前, Linux 基金会宣布 LFCS (Linux 基金会认证系统管理员) 认证诞生了,这个令人兴奋的新计划定位于让来自全球各地的初级到中级的 Linux 系统管理员得到认证.这其中包括维护已 ...
- 磁盘阵列介绍、进程的查看管理、日志文件的查看分析,systemctl的控制
RAID磁盘阵列 • 廉价冗余磁盘阵列 – Redundant Arrays of Inexpensive Disks – 通过硬件/软件技术,将多个较小/低速的磁盘整合成一 个大磁盘 – 阵列的价值 ...
- linux 修改时区_【003】一文全面掌握Linux初始化进程(超详细)
总第79篇 本文将详细梳理Linux系统的初始化进程systemd .通过对此进程的理解,你将对系统的初始化有一个深入的理解,从而更好地理解其它的操作. Linux系统的开机过程是这样的:从BIOS开 ...
- Linux 初始化之 Systemd机制
systemd是Linux下的一种init软件,由Lennart Poettering带头开发,其开发目标是提供更优秀的框架以表示系统服务间的依赖关系,并依此实现系统初始化时服务的并行启动,同时达到降 ...
- Linux 中的进程管理
### 1.进程定义 ### #进程的定义: 程序是静态的代码文件 进程是指程序运行时的形态 进程是程序的一个副本 进程是有生命周期的(准备期,运行期,终止期) #进程&线程 进程是资源调用的 ...
- Linux 进程资源分配,linux 进程管理和内存分配
1.进程相关概念 进程:正在运行中的程序 内核功用:进程管理.文件系统.网络功能.内存管理.驱动程序.安全功能等 Process:运行中的程序的一个副本,是被载入内存的一个指令集合 进程 ID(Pro ...
- 进程管理 systemctl控制
进程管理 程序:静态的代码,占用磁盘空间 进程:动态的代码,占用内内存,CPU的空间 父进程/子进程 标识:PID 查看进程 pstree --> processes Tree pstree ...
- Systemd 技术原理实践
来源于:干货分享 | Systemd 技术原理&实践(上)和 干货分享 | Systemd 技术原理&实践(下) 一.systemd 介绍 1 systemd 的起源 关于 syste ...
最新文章
- 计算机网络中的拓扑结构教案,计算机网络拓扑结构教案
- Placement new
- interrupt分析
- Infobright 数据仓库心得总结
- Hadoop系列(三)MapReduce Job的几种提交运行模式
- Guice Aop 与 Hasor Aop 原理及其实现
- Ubuntu中使用VS Code
- python resize重置大小
- (转)曹锋、宋天玮:区块链技术在证券市场中的应用探索
- python常用标准库
- idea导入opencv教程
- Java学习从入门到放弃
- 2021年的放假安排正式官宣!五一连休5天哦!
- 安徽师大附中%你赛day7 T2 乘积 解题报告
- win7 安装openssh_05、Win7上openSSH的安装与配置
- 推广网站的26种方法
- 旅游地图制作_手把手教你用旅游神器App:谷歌地图
- RGB565,RGB555, RGB888,RGB32转换
- php中 使用dsa算法,DSA加密算法解析
- EUV光刻技术如何为功率半导体提供动力
热门文章
- 面试了一个 35+ 岁的大佬,一言难尽......
- 京东面试官:SQL 语句中 left join 后用 on 还是 where,区别大了!
- Mybatis 有坑,千万别踩!
- 设计缓存系统:缓存穿透,缓存击穿,缓存雪崩解决方案分析
- 逃离北京?作为程序员的我在工作两个月的今天,露宿街头
- Android 11 Meetup 上海站!来了!
- luogu P2783 有机化学之神偶尔会做作弊
- HDU1054 Strategic Game —— 最小点覆盖 or 树形DP
- SQLite.dll混合模式程序集是针对“v2.0.50727”版的运行时生成的,在没有配置其他信息的情况下,无法在 4.0 运行时中加载该程序集。...
- 详解spring 每个jar的作用(转)