简明system

参数详解

Unit模块

[Unit] 部分
Description:简短描述
Documentation:文档地址
Requires:当前 Unit 依赖的其他 Unit,如果它们没有运行,当前 Unit 会启动失败
Wants:与当前 Unit 配合的其他 Unit,如果它们没有运行,当前 Unit 不会启动失败
BindsTo:与Requires类似,它指定的 Unit 如果退出,会导致当前 Unit 停止运行
Before:如果该字段指定的 Unit 也要启动,那么必须在当前 Unit 之后启动
After:如果该字段指定的 Unit 也要启动,那么必须在当前 Unit 之前启动
Conflicts:这里指定的 Unit 不能与当前 Unit 同时运行
Condition...:当前 Unit 运行必须满足的条件,否则不会运行
Assert...:当前 Unit 运行必须满足的条件,否则会报启动失败+-------------------+    +---------------------+|After->Condition...| -> |Requires -> Assert...| ->+-------------------+    +---------------------++-----+    +-------+    +------+-> |Wants| -> |BindsTo| -> |Before| -> ...+-----+    +-------+    +------+

Service模块

Type:定义启动时的进程行为。它有以下几种值。Type=simple:(默认值)启动一个子进程运行命令,用于不会退出的程序Type=forking:fork一个字进程,等待命令完成后退出,多用于后台进程 Type=oneshot:systemctl 等待命令完成再往下执行,像在控制台执行一个命令一样Type=dbus:当前服务通过D-Bus启动Type=notify:当前服务启动完毕,会通知Systemd,再继续往下执行Type=idle:若有其他任务执行完毕,当前服务才会运行
PIDFile:存放PID的绝对路径
ExecStart:启动当前服务的命令
ExecStartPre:启动当前服务之前执行的命令
ExecStartPost:启动当前服务之后执行的命令
ExecReload:重启当前服务时执行的命令
ExecStop:停止当前服务时执行的命令
ExecStopPost:停止当其服务之后执行的命令
RestartSec:自动重启当前服务间隔的秒数
Restart:定义何种情况 Systemd 会自动重启当前服务 no(默认值): # 退出后无操作on-success:  # 只有正常退出时(退出状态码为0),才会重启            on-failure:  # 非正常退出时,重启,包括被信号终止和超时等on-abnormal: # 只有被信号终止或超时,才会重启on-abort:    # 只有在收到没有捕捉到的信号终止时,才会重启on-watchdog: # 超时退出时,才会重启always:      # 不管什么退出原因,都会重启(除了systemctl stop)# 对于守护进程,推荐用on-failure
KillMode的类型:control-group(默认):# 当前控制组里的所有子进程,都会被杀掉process: # 只杀主进程mixed:   # 主进程将收到SIGTERM信号,子进程收到SIGKILL信号none:    # 没有进程会被杀掉,只是执行服务的stop命令
PrivateTmp=true # 表示给服务分配独立的临时空间
TimeoutSec:停止命令执行前等待秒数。
TimeoutStartSec:启动命令执行后等待秒数,超时停止。(0 关闭超时检测)
TimeoutStopSec:停止命令执行后等待秒数,超时使用 SIGKILL 停止服务。
Environment:为服务指定环境变量。
EnvironmentFile:环境变量文件,一行一个不要有空格。
Nice:进程优先级(默认为0)其中 -20 为最高优先级,19 为最低优先级。
WorkingDirectory:指定服务的工作目录,目录不纯在命令不能运行
RootDirectory:指定服务进程的根目录(/ 目录)。如果配置了这个参数,服务将无法访问指定目录以外的任何文件
User:指定运行服务的用户
Group:指定运行服务的用户组
MountFlags:服务的 Mount Namespace 配置,会影响进程上下文中挂载点的信息。shared:服务与主机共用一个 Mount Namespace,相互影响slave:服务使用独立的 Mount Namespace,它会继承主机挂载点,操作只有在自己的 Namespace 内生效。private:服务使用独立的 Mount Namespace,它在启动时没有任何任何挂载点,服务对挂载点的操作也不会反映到主机上。
LimitCPU:LimitSTACK:LimitNOFILE:LimitNPROC: 限制特定服务的系统资源量
+-----------+    +----+
|User->Group| -> |Nice| -> 
+-----------+    +----+
+---------------------------------+    +---------------+    +-------+

-> |RootDirectory -> WorkingDirectory| -> |EnvironmentFile| -> |PIDFile|
±--------------------------------+ ±--------------+ ±------+
±—+ ±------------------------------------------------------------+
-> |Type| -> |ExecStartPre -> ExecStart -> ExecStartPost -> TimeoutStartSec| ->
±—+ ±------------------------------------------------------------+
±------+ ±-----------------------+
-> |Restart| -> |ExecReload -> RestartSec| ->
±------+ ±-----------------------+
±-------+ ±-------------------------------------------------------+
-> |KillMode| -> |TimeoutSec -> ExecStop -> ExecStopPost -> TimeoutStopSec| -> …
±-------+ ±-------------------------------------------------------+

Install

WantedBy:Unit 激活时(enable)xxx.service符号链接会放入/etc/systemd/system/xxx.target.wants/目录下面multi-user.target: # 表示多用户命令行状态,这个设置很重要graphical.target:  # 表示图形用户状体,它依赖于multi-user.target
RequiredBy:Unit 激活时(enable)xxx.service符号链接会放入/etc/systemd/system/xxx.target.required/目录下面
Alias:当前 Unit 可用于启动的别名
Also:当前 Unit 激活(enable)时,会被同时激活的其他 Unit

systemd日志管理

如果服务的日志是控制台输出,当我们需要重定向日志到文件时,可以这么做。

  1. 在自定义 xxx.service 文件中 [Service] 增加
StandardOutput=syslog 
StandardError=syslog
SyslogIdentifier=identifier_for-me  #标识日志
  1. 创建 /etc/rsyslog.d/<new_file>.conf 文件
if $programname == 'identifier_for-me' then /home/log/mylog.log
& stop
  1. 重启rsyslog

坑点 limit配置不生效

在centos7的/etc/security/limits.conf配置中,开头有如下的一段话

# /etc/security/limits.conf
#
#This file sets the resource limits for the users logged in via PAM.
#It does not affect resource limits of the system services.

system services不受resource limits影响。这就解释了为什么修改limits.conf配置后,system services没有生效。那么,应该有其他方式修改这里的参数。

总结了两种方式:
方式一:在新建system service的时候,添加参数

LimitNOFILE=655350
LimitNPROC=655350

方式二:修改全局配置文件/etc/systemd/system.conf

DefaultLimitNOFILE=655350
DefaultLimitNPROC=655350

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/37548.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

企业网络安全必知的三大访问控制模型

在当今信息化社会中&#xff0c;信息系统的安全性成为了组织和个人关注的焦点。随着信息技术的不断发展和应用&#xff0c;信息系统的复杂性和规模不断扩大&#xff0c;系统中存储和处理的信息量也日益增长。 一、引言 在当今信息化社会中&#xff0c;信息系统的安全性成为了组…

深入解析QPS和TPS:理解与优化系统性能

目录 QPS是什么&#xff1f; QPS的定义QPS的计算QPS的应用场景 TPS是什么&#xff1f; TPS的定义TPS的计算TPS的应用场景 QPS和TPS的区别如何提高QPS和TPS 系统架构优化数据库优化代码优化缓存机制负载均衡 QPS和TPS的监控与测试 监控工具测试工具测试方法 案例分析 高QPS系统…

【知识点篇]《计算机组成原理》之计算机系统概述

1.1 计算机发展历程 世界上第一台电子数字计算机 1946年&#xff0c;ENIAC(Electronic Numerical Integrator And Computer)在美国宾夕法尼亚大学研制成功。性能低&#xff0c;耗费巨大&#xff0c;但却是科学史上的一次划时代的创新&#xff0c;奠定了电子计算机的基础&#x…

Python api接口 异步

Python API接口异步编程简介 在现代的软件开发中&#xff0c;大多数应用都需要通过API接口与其他系统进行交互。Python是一种非常流行的编程语言&#xff0c;因此许多开发者选择使用Python来构建他们的API接口。在一些情况下&#xff0c;API接口需要进行异步编程&#xff0c;以…

stm32学习笔记---ADC模数转换器(理论部分)

目录 ADC简介 什么叫逐次逼近型&#xff1f; STM32 ADC框图 模数转换器外围线路 ADC基本结构图 输入通道 规则组的四种转换模式 第一种&#xff1a;单次转换非扫描模式 第二种&#xff1a;连续转换&#xff0c;非扫描模式 第三种&#xff1a;单次转换&#xff0c;扫描…

如何利用React和Python构建强大的网络爬虫应用

如何利用React和Python构建强大的网络爬虫应用 引言&#xff1a; 网络爬虫是一种自动化程序&#xff0c;用于通过互联网抓取网页数据。随着互联网的不断发展和数据的爆炸式增长&#xff0c;网络爬虫越来越受欢迎。本文将介绍如何利用React和Python这两种流行的技术&#xff0c…

5个大气的wordpress付费主题

Sesko赛斯科wordpress外贸主题 适合用于重型机械设备公司建外贸官方网站的橙红色wordpress外贸主题。 https://www.jianzhanpress.com/?p5886 Polar钋啦wordpress外贸主题 制造业wordpress网站模板&#xff0c;适合生产制造企业官方网站使用的wordpress外贸主题。 https:/…

Flask-Session使用Redis

Flask-Session使用Redis 一、介绍 在Flask中&#xff0c;session数据默认是以加密的cookie形式存储在用户的浏览器中的。但是&#xff0c;真正的session数据应该存储在服务器端。Django框架会将session数据存储在数据库的djangosession表中&#xff0c;而Flask则可以通过第三…

临时文件上传系统Plik

什么是 Plik &#xff1f; Plik 是一个基于 Go 语言的可扩展且用户友好的临时文件上传系统&#xff08;类似于 Wetransfer&#xff09;。 软件主要特点&#xff1a; 强大的命令行客户端易于使用的 Web 用户界面多个数据后端&#xff1a;文件、OpenStack Swift、S3、Google Clo…

用pycharm进行python爬虫的步骤

使用 pycharm 进行 python 爬虫的步骤&#xff1a;下载并安装 pycharm。创建一个新项目。安装 requests 和 beautifulsoup 库。编写爬虫脚本&#xff0c;包括获取页面内容、解析 html 和提取数据的代码。运行爬虫脚本。保存和处理提取到的数据。 用 PyCharm 进行 Python 爬虫的…

golang template模板嵌套语法 为何不能使用变量 底层源码解析

我们都知道在golang的模板语法中&#xff0c;我们可以使用template关键字嵌套其他模块&#xff0c; 如&#xff1a; {{template "模板文件名" .}} 然而&#xff0c;这里的 “模板文件名” 是不能使用变量的&#xff01; 注意这里最后的的 . 这个实际上是templa…

vue3 学习记录

文章目录 props组合式组件 使用<script setup \>组合式组件 没有使用 <script setup\>选项式组件 this emits组合式组件 使用<script setup \>组合式组件 没有使用 <script setup\>选项式组件 this v-model 组件数据绑定单个model多个model实现 model …

轻量级模型,重量级性能,TinyLlama、LiteLlama小模型火起来了

小身板&#xff0c;大能量。 当大家都在研究大模型&#xff08;LLM&#xff09;参数规模达到百亿甚至千亿级别的同时&#xff0c;小巧且兼具高性能的小模型开始受到研究者的关注。 小模型在边缘设备上有着广泛的应用&#xff0c;如智能手机、物联网设备和嵌入式系统&#xff0…

java用pdf.js在线预览pdf文件(jeecg框架)

最近在jeecg框架的后台要做一个pdf在线预览的页面功能&#xff0c;可是每次点预览都是下载&#xff0c;所以就要解决这个问题&#xff0c;现在解决了&#xff0c;记录一下&#xff0c;防止后面踩坑。 先放代码&#xff1a; 下面是点“预览”按钮的点击事件&#xff0c;代码放…

【Mac】iTerm for mac(终端工具)软件介绍及安装教程

软件介绍 iTerm 是 macOS 上一个非常受欢迎的终端仿真器&#xff0c;提供了比默认的 Terminal 应用更多的功能和定制选项。它是一款开源软件&#xff0c;主要用于命令行界面的操作和开发者工具。 主要特点和功能&#xff1a; 分页和标签&#xff1a; iTerm 允许用户在单个窗…

师出名门,全靠师兄师姐罩着

前言 2024年的高考刚结束,考生又到了做选择的时候了。选择大于努力,方向错了&#xff0c;白费劲。 耳熟能详的名校 名校意味着? 卓越的教育资源&#xff1a;包括顶尖的师资队伍&#xff0c;他们在学术研究和教学方面经验丰富、造诣深厚。同时&#xff0c;拥有先进的教学设施、…

英国牛津大学博士后职位—统计学

牛津大学&#xff08;University of Oxford&#xff09;&#xff0c;简称“牛津”&#xff08;Oxford&#xff09;&#xff0c;位于英国牛津&#xff0c;是一所公立研究型大学&#xff0c;采用传统学院制。是罗素大学集团成员&#xff0c;被誉为“金三角名校”、“G5超级精英大…

【电控笔记5.12】滑膜估测器SMO-无感控制

滑模控制(Sliding Mode Control, SMC)是一种用于控制非线性系统的鲁棒控制方法。它通过设计一个滑模面,使系统状态沿着滑模面运动,从而达到期望的控制目标。滑模控制器具有对系统参数变化和外界干扰的鲁棒性,因而在许多工业控制系统中得到了广泛应用。 滑模控制的基本原理…

Python实现IPv4地址和16进制互相转换

Python实现IPv4地址和16进制互相转换 import socketdef ip_to_hex16(ipaddr):# 使用 socket 库中的方法将IP地址转换为网络字节序的二进制表示hex_bytes socket.inet_aton(ipaddr)# 将二进制数据转换为整数, 其中byteorderbig 表示使用大端字节序&#xff08;从高位到低位&…

Leetcode刷题笔记 | 二叉树基本性质 | 一天的题量 | 5道题目 | 深度优先搜索 | 广度优先搜索 | 递归 | 遍历

&#x1f64b;大家好&#xff01;我是毛毛张! &#x1f308;个人首页&#xff1a; 神马都会亿点点的毛毛张 &#x1f4cc;本期毛毛张分享的是LeetCode关于二叉树&#x1f332;的性质的一些基础题&#xff0c;做这些题目的本质还是遍历二叉树&#x1f3c3;‍➡️的过程&#…