使用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 同时设置TimeoutStartSecTimeoutStopSec
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管理程序进程相关推荐

  1. DNS服务器分离解析 RAID阵列 进程管理 日志管理 systemd作用

    目录 分离解析 什么是分离解析 BIND的view视图 案例 案例2 RAID阵列概述 • 廉价冗余磁盘阵列 • RAID 0,条带模式 • RAID 1,镜像模式 • RAID5,高性价比模式 ​• ...

  2. 进程管理程序 - Supervisor - 学习/实践

    1.应用场景 主要用于在UNIX-like上管理程序进程,如,程序进程启动,停止,守护等. 如:pyhon,php, jar脚本的后台任务运行. 2.学习/操作 1.文档阅读 Introduction ...

  3. linux 自启动服务 SYSV,技术|LFCS 系列第七讲:通过 SysVinit、Systemd 和 Upstart 管理系统自启动进程和服务...

    几个月前, Linux 基金会宣布 LFCS (Linux 基金会认证系统管理员) 认证诞生了,这个令人兴奋的新计划定位于让来自全球各地的初级到中级的 Linux 系统管理员得到认证.这其中包括维护已 ...

  4. 磁盘阵列介绍、进程的查看管理、日志文件的查看分析,systemctl的控制

    RAID磁盘阵列 • 廉价冗余磁盘阵列 – Redundant Arrays of Inexpensive Disks – 通过硬件/软件技术,将多个较小/低速的磁盘整合成一 个大磁盘 – 阵列的价值 ...

  5. linux 修改时区_【003】一文全面掌握Linux初始化进程(超详细)

    总第79篇 本文将详细梳理Linux系统的初始化进程systemd .通过对此进程的理解,你将对系统的初始化有一个深入的理解,从而更好地理解其它的操作. Linux系统的开机过程是这样的:从BIOS开 ...

  6. Linux 初始化之 Systemd机制

    systemd是Linux下的一种init软件,由Lennart Poettering带头开发,其开发目标是提供更优秀的框架以表示系统服务间的依赖关系,并依此实现系统初始化时服务的并行启动,同时达到降 ...

  7. Linux 中的进程管理

    ### 1.进程定义 ### #进程的定义: 程序是静态的代码文件 进程是指程序运行时的形态 进程是程序的一个副本 进程是有生命周期的(准备期,运行期,终止期) #进程&线程 进程是资源调用的 ...

  8. Linux 进程资源分配,linux 进程管理和内存分配

    1.进程相关概念 进程:正在运行中的程序 内核功用:进程管理.文件系统.网络功能.内存管理.驱动程序.安全功能等 Process:运行中的程序的一个副本,是被载入内存的一个指令集合 进程 ID(Pro ...

  9. 进程管理 systemctl控制

    进程管理 程序:静态的代码,占用磁盘空间 进程:动态的代码,占用内内存,CPU的空间 父进程/子进程   标识:PID 查看进程 pstree --> processes Tree pstree ...

  10. Systemd 技术原理实践

    来源于:干货分享 | Systemd 技术原理&实践(上)和 干货分享 | Systemd 技术原理&实践(下) 一.systemd 介绍 1 systemd 的起源 关于 syste ...

最新文章

  1. 计算机网络中的拓扑结构教案,计算机网络拓扑结构教案
  2. Placement new
  3. interrupt分析
  4. Infobright 数据仓库心得总结
  5. Hadoop系列(三)MapReduce Job的几种提交运行模式
  6. Guice Aop 与 Hasor Aop 原理及其实现
  7. Ubuntu中使用VS Code
  8. python resize重置大小
  9. (转)曹锋、宋天玮:区块链技术在证券市场中的应用探索
  10. python常用标准库
  11. idea导入opencv教程
  12. Java学习从入门到放弃
  13. 2021年的放假安排正式官宣!五一连休5天哦!
  14. 安徽师大附中%你赛day7 T2 乘积 解题报告
  15. win7 安装openssh_05、Win7上openSSH的安装与配置
  16. 推广网站的26种方法
  17. 旅游地图制作_手把手教你用旅游神器App:谷歌地图
  18. RGB565,RGB555, RGB888,RGB32转换
  19. php中 使用dsa算法,DSA加密算法解析
  20. EUV光刻技术如何为功率半导体提供动力

热门文章

  1. 面试了一个 35+ 岁的大佬,一言难尽......
  2. 京东面试官:SQL 语句中 left join 后用 on 还是 where,区别大了!
  3. Mybatis 有坑,千万别踩!
  4. 设计缓存系统:缓存穿透,缓存击穿,缓存雪崩解决方案分析
  5. 逃离北京?作为程序员的我在工作两个月的今天,露宿街头
  6. Android 11 Meetup 上海站!来了!
  7. luogu P2783 有机化学之神偶尔会做作弊
  8. HDU1054 Strategic Game —— 最小点覆盖 or 树形DP
  9. SQLite.dll混合模式程序集是针对“v2.0.50727”版的运行时生成的,在没有配置其他信息的情况下,无法在 4.0 运行时中加载该程序集。...
  10. 详解spring 每个jar的作用(转)