systemd - CentOS 7进程守护&监控

Python服务部署实战:从虚拟环境到Systemd守护进程的完整指南 在Linux服务器上部署Python应用,核心在于实现服务的稳定运行与高效管理。虚拟环境通过隔离依赖解决了不同项目间的包冲突问题,是Python项目部署的基础。进程守护技术则确保了应用在后台持续运行,不会因会话中断而终止。结合Systemd或Supervisor等进程管理工具,开发者可以实现服务的自动重启、资源监控与集中日志管理。这种组合方案为数据清洗脚本、API服务等场景提供了生产级的可靠性保障,特别是通过Systemd服务单元文件的配置,能够实现工业级的服务守护与资源控制。掌握虚拟环境与进程守护原理,是 阅读详情

需求:

运行环境为CentOS 7系统,我们开发了一个程序,需要在开机时启动它,当程序进程crash之后,守护进程立即拉起进程。

解决方案:

使用CentOS 7中的init进程systemd

systemd简介

Linux Init & CentOS systemd

Linux一直以来采用init进程。例如下面的命令用来启动服务:
$ sudo /etc/init.d/apache2 start
或者\ $ service apache2 start

但是init有两个缺点:
1、启动时间长。Init进程是串行启动,只有前一个进程启动完,才会启动下一个进程。(这也是CentOS5的主要特征)
2、启动脚本复杂。Init进程只是执行启动脚本,不管其他事情。脚本需要自己处理各种情况,这使得脚本变得很长而且复杂。

Init:
Centos 5 Sys init 是启动速度最慢的,串行启动过程,无论进程相互之间有无依赖关系。
Centos6 Upstart init 相对启动速度快一点有所改进。有依赖的进程之间依次启动而其他与之没有依赖关系的则并行同步启动。
Centos7 systemd 与以上都不同。所有进程无论有无依赖关系则都是并行启动(当然很多时候进程没有真正启动而是只有一个信号或者说是标记而已,在真正利用的时候才会真正启动。)

systemd为了解决上文的问题而诞生。它的目标是,为系统的启动和管理提供一套完整的解决方案。根据linux惯例,字母d是守护进程(daemon) 的缩写。Systemd名字的含义就是 守护整个系统。Centos 7里systemd代替了init,成为了系统的第一个进程。PID为1.其他所有的进程都是它的子进程。

systemd 是 Linux 下的一款系统和服务管理器,兼容 SysV 和 LSB 的启动脚本。systemd 的特性有:支持并行化任务;同时采用 socket 式与 D-Bus 总线式激活服务;按需启动守护进程(daemon);利用 Linux 的 cgroups 监视进程;支持快照和系统恢复;维护挂载点和自动挂载点;各服务间基于依赖关系进行精密控制。

使用demo

Step1. 创建被监控脚本

$ cd ~
$ vim test_init_watch.sh

//脚本任务:间隔一秒钟输出一个date时间戳到指定到指定文件

#!/bin/bash

# test_init_watch.sh
while [ 1 ]
do
    echo `date` >> /home/cooper/log.txt
    sleep 1
done
$ chmod 777 test_init_watch.sh

//创建软链接/home/cooper/test_init_watch.sh =>/usr/sbin/sysd-test

$ sudo cd /usr/sbin
$ ln -sf /home/cooper/test_init_watch.sh sysd-test

Step2. 创建服务文件,设置init进程托管

注意:

  • systemd服务文件放置目录有系统和用户区分;系统(/usr/lib/systemd/system/)、用户(/usr/lib/systemd/user/)。
  • 在开机中没有登陆情况下就能运行的程序,应该放置在系统目录中;反之则放在用户目录中

//为了测试方便,把服务文件放在/usr/lib/systemd/system中(借鉴sshd.service):

$ cd /usr/lib/systemd/system/sysd-test.service
$ cp sshd.service sysd-test.service     
$ vim sysd-test.service

// usr/lib/systemd/system/sysd-test.service

[Unit]
Description=sysd server daemon
Documentation=no
After=no
Wants=no

[Service]
EnvironmentFile=no
ExecStart=/usr/sbin/sysd-test
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure
RestartSec=1s

[Install]
WantedBy=multi-user.target graphic.target      #相当于runlevel:2345

// 激活开机启动。启用runlevel的2345级别

$ systemctl enable sysd-test.service

//等价于创建软链接(下面的命令不用执行)

$ cd /etc/systemd/system/multi-user.target.wants
$ ln -sf /usr/lib/systemd/system/sysd-test.service sysd-test.service
$ cd /usr/lib/systemd/system/graphical.target.wants/
$ ln -sf /usr/lib/systemd/system/sysd-test.service sysd-test.service

Step3. 启动sysd_test

//使用命令:

systemctl [start|stop|status|reload|kill] sysd-test.service

//启动

$ systemctl start sysd-test.service
$ pgrep sysd-test
$ pkill -9 sysd-test
$ pgrep sysd-test

//会发现两次pgrep进程id不一样了,表示系统自动拉起了sysd-test

//停止

$ systemctl stop sysd-test.service
CentOS 7下Filebeat后台守护进程:systemd服务化部署与运维指南 本文详细介绍了在CentOS 7系统下使用systemd将Filebeat配置为后台守护进程的完整指南。从环境准备、服务文件配置到生产环境优化,涵盖自动恢复、开机自启等关键功能,帮助运维人员实现99.9%的日志采集稳定性。特别针对高负载环境提供了资源限制、权限管理等高级调优技巧。 阅读详情

相关推荐

CentOS 7下将Dropbox配置为systemd用户服务

Dropbox作为主流云同步工具,其官方客户端本质是面向桌面环境的GUI应用,依赖X11、D-Bus和密钥环等组件,在无图形界面的Linux服务器上无法直接运行。systemd服务机制通过定义明确的启动身份、工作路径、环境变量与重启策略,可将其改造为符合生产要求的守护进程。核心在于绕过GUI授权流程,采用离线令牌注入方式实现无头部署;同时精准设置WorkingDirectory和DISPLAY等关键参数,确保dropboxd稳定连接与元数据同步。该方案广泛适用于CentOS 7/8、RHEL及类System

351

CentOS 7 下将 Dropbox CLI 封装为 systemd 系统服务

Dropbox CLI 本质是命令行工具,非原生守护进程,无法在无桌面环境的 Linux 服务器上长期稳定运行。其核心原理是依赖用户会话与 D-Bus 通信,登出即终止,导致同步中断。通过 systemd 的 forking 类型服务封装、PID 文件可靠管理、启动时序控制及 Python 2.7 兼容性适配,可将其转化为 7×24 小时不间断的系统级服务。该方案具备进程树管控、故障自愈、权限隔离等工程优势,特别适用于 CentOS 7 环境下的 NAS 归档、日志备份与自动化文件镜像等生产场景,解决官方停

weixin_30825199的博客 422

麒麟V10系统下微信PC版安装全攻略:从源配置到一键安装(附常见问题解决)

本文详细介绍了在麒麟V10系统下安装和优化微信PC版的完整流程,包括系统环境准备、软件源配置、多途径安装方案以及性能优化技巧。特别针对国产操作系统用户,提供了从基础安装到高级配置的一站式解决方案,并附有常见问题排查方法,帮助用户快速实现微信PC版的高效运行。

weixin_30500105的博客 718

/etc/rc.d/init.d目录下启动自定义脚本进程名的区别与添加守护进程

etc/rc.d/init.d目录下的script1脚本内不运行别的脚本,那么service script1 start执行后,生成进程名/etc/rc.d/init.d/script1 start/etc/rc.d/init.d目录下的script2脚本内运行别的脚本/root/script3.sh(必需是sh /root/script3.sh),那么service script2 start执行后,生成进程名sh /root/script3.sh。

weixin_47680367的博客 835

LabVIEW Modbus通讯实战:从安装库到读写寄存器的完整避坑指南

本文详细介绍了LabVIEW与Modbus通讯的完整实战指南,从安装库文件到读写寄存器的全流程操作,帮助开发者避开常见问题。通过虚拟串口配置、主机配置实战和高级调试技巧,提升工业自动化领域的通讯效率与可靠性。

milk8的博客 740

Qt快速读取Excel文件

网上很多读取方式都是如下形式,太慢了,打开文件+读取文件要6s以上,实在是受不了! QAxObject excel("Excel.Application"); excel.setProperty("Visible", false); QAxObject *work_books = excel.querySubObject("WorkBooks"); work_boo...

c+c++的博客 2万+

Centos 通过计划任务进程守护Elasticsearch

最近做了个MAGENTO2的网站Elasticsearch总是偶尔莫名挂掉导致网站不能正常运行。使用了宝塔的 进程守护管理器 发现真的很难用各种BUG而且无法启动,再三尝试未果无心恋战决定放弃,使用Bash计划任务来监控Elasticsearch进程。当进程中找不到java也就是ES的进程则运行宝塔清理内存的脚本,然后再执行ES启动命令;首先我们要找到Elasticsearch的进程名字,执行命令:top。如果结果是acticating则表示启动成功。

Yafully 565

【教程4>第10章>第13节】基于FPGA的图像双边滤波开发——单通道双边滤波Verilog实现

本文介绍了基于Vivado 2022.2的单通道高斯滤波FPGA实现方案。主要内容包括:1)采用3×3窗口像素提取、高斯权值计算、exp指数运算等模块构建双边滤波系统;2)详细分析了Verilog HDL实现的顶层设计文件,包含窗口数据生成、指数计算、混合权重、归一化处理等关键模块;3)展示了图像双边滤波器的RTL结构图。该设计为后续实现RGB三通道图像高斯滤波及MATLAB联合仿真奠定了基础。

FPGA/MATLAB学习教程/源码/项目合作开发 263

centos下orientdb 守护进程制作

一个是定义安装目录路径(/opt/orientdb)的ORIENTDB_DIR,另一个是定义您想要运行OrientDB的用户名的ORIENTDB_USER,如下所示。可以在OrientDB安装目录的bin/目录中找到它,它完整文件路径是:$ORIENTDB_HOME/bin/orientdb.sh。使用以下命令将OrientDB安装目录($ORIENTDB_HOME/bin)中的console.sh文件复制到系统bin目录(/usr/bin)以访问Orient DB的控制台。

lb521200200的专栏 382

五、MT8168 音频驱动之SPEAKER

本章主要讲解MT8168平台的内部SPEAKER驱动配置。分为HP接法和LINE OUT接法。2.1.3 audio_custom_exp.h设置。2.1.4 mixer_paths.xml设置。2.2.3 mixer_paths.xml设置。2.1.2 ProjectConfig 设置。2.2.2 ProjectConfig 设置。2.2.1 deconfig设置。2.1.1 DTS设置。......

Joon2020的博客 1664

[VT虚拟化驱动] 定义类及初始化内存区域

文章目录前言框架整体流程图类的定义初始化内存区域本章代码 前言 为什么不用C而用C++呢? 在单核的情况下,用C还比较方便些,但在多核的情况下,每个核心都需要分配有对应的一个VMX区域,VMCS区域,MsrBitmap区域和栈空间,以及对应的初始化函数,如果使用安装DPC回调的方式在多核情况下进行初始化,只使用同一个初始化函数,当函数被多个CPU核心同时执行,会出现很多意想不到的的错误,我用自旋锁试了一下是依照各种错误,所以果断用C++了,把这些每个核心都需要一份的封装到一个类里 框架整体流程图 类的定义

吾无法无天的博客 1836

centos——部署springboot项目(含启动脚本编写、开机自启脚本编写、守护进程开机二合一脚本编写)

一、环境 带jdk、mysql 等。 我的环境 [root@VM_0_3_centos rc.d]# cat /proc/version Linux version 3.10.0-862.14.4.el7.x86_64 (mockbuild@kbuilder.bsys.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-28) (G...

专注写bug 2037

基于Python的链家与贝壳租房数据爬取及城市性价比分析

本文通过Python爬虫技术,实现对链家和贝壳平台全国主要城市租房数据的采集与分析。研究使用requestsSelenium和Playwright等现代化爬虫工具,结合代理IP和验证码识别技术应对反爬机制。采集的数据经过清洗后,从多维度分析不同城市租房市场的价格分布、面积特征和性价比差异,并使用可视化技术展示分析结果。本研究为租房者提供决策参考,也为租房市场研究提供数据支撑。关键词:Python爬虫;租房数据;数据分析;链家;贝壳。

2201_76125261的博客 530

python用户登录d_通过python和dbus启动用户systemd服务

It is possible to use systemd's manager via dbus to control services, e.g: Starting a systemd service via python using this:import dbussysbus = dbus.SystemBus()systemd1 = sysbus.get_object('org.freede...

weixin_39646107的博客 516

(建议收藏)2024最新 URL Scheme大全APP跳转界面地址更新中 ios快捷指令快捷方式链接跳转微信小程序必备autojs可用免root (可定制开发和提取URL Scheme 参数提取)

(建议收藏)2024最新 URL Scheme大全APP跳转界面地址更新中 ios快捷指令快捷方式链接跳转微信小程序必备autojs可用免root (可定制开发和提取URL Scheme 参数提取)

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 1万+

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Centos 7 进程守护与监控-systemctrl服务

想给自己开发的程序做进程守护,比如要实现开机时启动某进程或某进程crash后要自动拉起来的功能。通过centos中init进程systemd 使用demo 启用qkdtest服务,当代理进程crash之后,守护进程会拉起进程。1.将start和shutdown脚本放在和qkd可执行文件同一目录, cd /home/qkd/ [root@localhost qkd]# ll total 204 -rwxr-xr-x. 1 root root 23896 Feb 27 14:28 xxx.exe -rw..

xyl_20171026的博客 546

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

如何在CentOS 7.9上通过 systemd 与 Docker 集成,实现自动化容器启动与监控?

systemd 与 Docker 深度集成,统一管理容器生命周期;自动化启动、依赖管理、日志采集、故障重启均集中在 systemd 控制;对生产环境容器推荐启用健康检查、Restart=on-failure 等策略;监控告警体系可通过 Prometheus + Alertmanager + Grafana 完整覆盖容器级 SLA 指标。使用 systemd 套件的 watchdog 特性实现更精细的心跳机制引入容器编排平台(如 Kubernetes)替代单节点管理。

A5数据 815

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

Python服务器部署实战:从虚拟环境到Systemd进程守护

在Linux服务器环境下运行Python应用,需要从交互式脚本执行转向服务化部署思维。理解虚拟环境(venv)的原理至关重要,它能隔离项目依赖,避免与系统Python冲突,是环境管理的基石。通过进程守护技术,如Systemd或Supervisor,可实现应用的自启动、崩溃重启和资源管控,这是保障服务持续可用的核心机制。结合Gunicorn等WSGI服务器与Nginx反向代理,能有效提升Web应用的并发处理能力和安全性。这些工程化实践共同构成了Python应用在生产环境稳定运行的完整技术栈,适用于从Flask

weixin_30437847的博客 379

Lucky进程守护配置:systemd服务与进程管理工具管理,确保持续运行

你是否遇到过Lucky服务意外中断导致端口转发失效、DDNS解析异常的问题?本文将通过两种实用方案,帮助你实现Lucky进程的持久化运行,确保网络服务7×24小时稳定可用。读完本文你将掌握: - systemd服务配置实现开机自启 - 进程管理工具实现故障自动恢复 - 两种方案的对比与选型建议 ## systemd服务配置(推荐Linux系统) ### 服务文件解析 Lucky项目已内置sys...

gitblog_00486的博客 614

别再手动重启服务了!用Supervisor守护你的Python脚本和Nginx进程(CentOS 7/8保姆级配置)

本文详细介绍了如何在CentOS 7/8上使用Supervisor守护Python脚本和Nginx进程,实现自动重启和集中管理。通过安装配置、实战案例和高级应用场景,帮助开发者告别手动重启,提升运维效率。特别适合需要长期运行关键进程的场景。

weixin_30918633的博客 406

使用Systemd管理ES服务进程

CentOS 中的 Systemd 详细介绍Systemd 是 Linux 系统的初始化系统和服务管理器,自CentOS 7起取代了传统的 SysVinit,成为默认的初始化工具。它负责系统启动、服务管理、日志记录等核心功能,显著提升了系统的启动速度和资源管理效率。1. Systemd 的核心作用•服务管理:启动、停止、重启服务,管理服务依赖关系。•系统初始化:并行化启动进程,加速系统启动。•资源监控:跟踪进程状态、资源占用(CPU、内存等)。•日志管理:通过journald。

技术人集结地 1695

守护进程导致程序kill掉后被重新拉起

从上面的命令可以查找到守护进程的配置文件位置:从配置信息看,守护进程的配置文件,又加载了/etc/supervisor/conf.d/*.conf的所有相关配置信息;查询结果为空;说明不是守护进程拉起的;

专注最新最热的AI知识学习,以实战方式总结心得。 850

xmrig后台运行教程:Linux守护进程设置方法

你是否还在为SSH断开导致xmrig进程终止而烦恼?作为Linux系统下的程序运行者,将xmrig配置为系统守护进程(Daemon)是保障连续性的关键步骤。本文将详细介绍如何通过systemd实现xmrig的后台运行、开机自启和进程监控,解决终端依赖、意外中断等核心痛点。读完本文后,你将掌握: - 编写专业的systemd服务配置文件 - 实现xmrig进程的自动重启与崩溃恢复 - 配置高性能日...

gitblog_00057的博客 571

Linux学习——控制服务和守护进程(七)

守护进程(Daemon)是一类运行在后台的特殊进程,主要负责执行系统服务,像网络服务、定时任务等都依赖于守护进程。它们具有独立于用户交互的特性,会在系统开机时自动启动,并在关机时有序停止,通常以 “d” 为后缀命名,例如 sshd、httpd。​而 systemd 是当前主流 Linux 发行版(如 CentOS 7+、Ubuntu 16.04+)所采用的系统和服务管理器,它替代了传统的 SysV init,成为管理守护进程的核心工具。其主要功能包括:​。

m0_74197017的博客 703

保姆级教程:在CentOS 7上手动部署MinIO对象存储并配置systemd守护进程

本文提供在CentOS 7上手动部署MinIO对象存储的详细教程,包括二进制文件安装、systemd守护进程配置及开机自启设置。通过安全加固、系统参数调优和高级systemd服务配置,实现企业级MinIO部署,确保高性能和稳定性。

weixin_30836759的博客 529
上一篇: 确保read和write数据完整
下一篇: /bin和/sbin
HelloCooper
博客等级 码龄11年 13粉丝 37原创
评论 5
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值