如何服务器用守护进程保证程序稳定运行

如何服务器用守护进程保证程序稳定运行

一、前言

平常在使用服务器的时候,服务一直不稳定,遂从nohup改为创建一个systemd服务来管理Python程序。
要求:有root权限

二、步骤

1、创建systemd服务文件

创建一个新的systemd服务文件,例如/etc/systemd/system/your-service.service
我的是app.py
那么就创建:/etc/systemd/system/app.service
内容模版如下:

[Unit]
Description=My Python Service
After=network.target[Service]
ExecStart=/usr/bin/python /home/username/app/your_script.py
Restart=always
User=username
Group=username
Environment=PATH=/usr/bin:/usr/local/bin
WorkingDirectory=/home/username/app
StandardOutput=journal
StandardError=journal
SyslogIdentifier=my-python-service[Install]
WantedBy=multi-user.target

模版中必须修改的地方有下面三个:

  1. ExecStart: 指定你的 Python 解释器的路径(如果你使用了虚拟环境,这里应该是虚拟环境中的 Python 解释器路径)和你的 Python 脚本的路径。
  2. User 和 Group: 指定运行该服务的用户和组,确保该用户对你的 Python 脚本有执行权限。
  3. WorkingDirectory: 指定你的 Python 脚本的工作目录,通常是脚本所在的目录。
    写好后如下:
    在这里插入图片描述

2、应用更改并重启服务

在做出这些更改后,重新加载 systemd 配置并尝试重启服务:

sudo systemctl daemon-reload
sudo systemctl restart app.service

重启systemctl服务完后,程序就能稳定运行了

3、查询服务状态以及日志输出

方法一:查询systemctl服务下所启动服务的状态

sudo systemctl status app.service   

注:app.service改为第一步你创建的服务文件
在这里插入图片描述
方法二:使用journalctl 工具查询启动服务的日志
journalctl 是一个用于查询和显示从 systemd 日志管理器收集的日志的工具。systemd-journald 服务收集和管理来自内核、启动过程、系统服务以及其他来源的日志信息。这些日志被存储在一个结构化、索引化的二进制文件中,通常位于 /var/log/journal/ 目录下。

journalctl 提供了强大的功能来检索和分析日志数据。它可以用来:

  • 显示所有日志信息,从最早到最新。
  • 过滤日志条目,基于时间、服务、优先级等标准。
  • 跟踪实时日志输出。
  • 显示特定时间范围内的日志。
  • 显示特定系统服务或单元的日志。
  • 输出日志到不同的格式,如 JSON。
  • 导出日志数据供进一步分析。

查询指令如下

sudo journalctl -u app.service

注:app.service改为第一步你创建的服务文件

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

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

相关文章

X-Bogus加密参数分析与jsvmp算法(仅供学习)

文章目录 1. 抓包分析2. X-Bogus参数分析 【作者主页】:吴秋霖 【作者介绍】:Python领域优质创作者、阿里云博客专家、华为云享专家。长期致力于Python与爬虫领域研究与开发工作! 【作者推荐】:对JS逆向感兴趣的朋友可以关注《爬虫…

day20 最大的二叉树 合并二叉树 二叉搜索树中的搜索 验证二叉搜索树

题目1:654 最大二叉树 题目链接:654 最大二叉树 题意 根据不重复的整数数组nums构建最大的二叉树 ,根节点是数组中的最大值,最大值左边的子数组构建左子树,最大值右边的子数组构建右子树 nums数组中最少含有1个元素…

怿星科技测试实验室获CNAS实验室认可,汽车以太网检测能力达国际标准

2023年12月27日,上海怿星电子科技有限公司测试实验室(下称:EPT LABS)通过CNAS实验室认可批准,并于2024年1月5日正式取得CNAS实验室认可证书(注册号CNAS L19826),标志着怿星科技的实验…

48-DOM节点,innerHTML,innerText,outerHTML,outerText,静态获取,单机click,cssText

1.DOM基础 Document Object Module,文档对象模型,window对象,document文档,都可以获取和操作 1)文档节点 2)属性节点(标签内的属性href,src) 3)文本节点(标签内的文字) 4)注释节点 5)元素节点(标签) 2.获取元素节点 2.1通过标签名获取getElementsByTagName() …

运维平台介绍:视频智能运维平台的视频质量诊断分析和告警中心

目 录 一、视频智能运维平台介绍 (一)平台概述 (二)结构图 (三)功能介绍 1、运维监控 2、视频诊断 3、巡检管理 4、告警管理 5、资产管理 6、工单管理 7、运维…

StructuredStreaming输出模式和结果输出文件中

输出模式 #format指定输出位置 console:控制台 #append 不支持排序,不支持聚合, 每次输出数据都是最新的数据内容 #complete 必须聚合,支持聚合后排序 每次输出数据都会将原来的数据一起输出 #update 支持聚合,支持sel…

循环异步调取接口使用数组promiseList保存,Promise.all(promiseList)获取不到数组内容,then()返回空数组

在使用 vue vant2.13.2 技术栈的项目中,因为上传文件的接口是单文件上传,当使用批量上传时,只能循环调取接口;然后有校验内容:需要所有文件上传成功后才能保存,在文件上传不成功时点击保存按钮&#xff0c…

linux 安装ffmpeg

一、下载 ffmpeg-4.3.1 下载地址:链接:https://pan.baidu.com/s/1xbkpHDfIWSCbHFGJJHSQcA 提取码:3eil 二、上传到服务器root目录下 三、给ffmpeg-4.3.1 读写权限 chmod -R 777 /root/ffmpeg-4.3.1 四、创建软连接 1.进入/bin 目录 2.…

java数组在多线程中安全问题,HashMap是不安全的,Hashtable安全(但每次都加锁,效率低),ConcurrentHashMap完美

package com.controller;import com.myThread.AdminThread; import com.myThread.MyCallable; import com.myThread.MyRunnable; import org.springframework.web.bind.annotation.*;import java.util.concurrent.*; //上面引入*,所以这个可以注销 //import java.ut…

WEBDYNPRO FPM 框架

框架搭建 1、FPM_OVP_COMPONENT 1 METHOD change_toolbar_btn .2 * enabled "ABAP_TRUE可用 ABAP_FALSE不可用3 * visibility "01不可见 02可见4 DATA: ls_btn TYPE if_fpm_ovp>ty_s_toolbar_button.5 CHECK wd_this->mo_cnr IS BOUND.6 7 TRY .8 …

测试 ASP.NET Core 中间件

正常情况下,中间件会在主程序入口统一进行实例化,这样如果想单独测试某一个中间件就很不方便,为了能测试单个中间件,可以使用 TestServer 单独测试。 这样便可以: 实例化只包含需要测试的组件的应用管道。发送自定义请…

计算机网络编程

网络编程 文章目录 网络编程1 计算机网络1.1 什么是网络1.2 什么是计算机网络1.3 计算机网络发展的四个阶段 2 常用名词2.1 网络模型2.1.1 OSI模型2.1.2 TCP/IP模型 2.2 网络协议2.2.1 TCP/UDP2.2.2 IP 2.3 Port: 端口号 3 计算机网络编程3.1 InetAddress类3.2 基于TCP的Socket…

瑞_Java开发手册_(六)工程结构

文章目录 工程结构的意义(一) 应用分层(二) 二方库依赖(三) 服务器 🙊前言:本文章为瑞_系列专栏之《Java开发手册》的工程结构篇,主要介绍应用分层、二方库依赖、服务器。由于博主是从阿里的《Java开发手册》学习到Java的编程规约&#xff0c…

前端面试题汇总大全(含答案)-- 持续更新

​一、HTML 篇 1. 简述一下你对 HTML 语义化的理解? 用正确的标签做正确的事情。 html 语义化让页面的内容结构化,结构更清晰,便于对浏览器、搜索引擎解析;即使在没有样式 CSS 情况下也以一种文档格式显示,并且是容易…

Puppeteer让你网页操作更简单(2)抓取数据

Puppeteer让你网页操作更简单(1)屏幕截图】 示例2 —— 让我们抓取一些数据 现在您已经了解了Headless Chrome和Puppeteer的工作原理基础知识,让我们看一个更复杂的示例,其中我们实际上可以抓取一些数据。 首先,请查看此处的Puppeteer API文档。如您所见,有大量不同的方法我…

计算机毕业设计 基于SSM的历史/博物馆藏系统的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍:✌从事软件开发10年之余,专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ 🍅文末获取源码联系🍅 👇🏻 精…

Linux粘滞位的理解,什么是粘滞位?

文章目录 前言如何理解?粘滞位的操作最后总结一下 前言 粘滞位(Stickybit),或粘着位,是Unix文件系统权限的一个旗标。最常见的用法在目录上设置粘滞位,如此以来,只有目录内文件的所有者或者root…

Dubbo-admin监控中心

监控中心 Dubbo-admin监控中心执行操作启动provider和consumer项目进行测试总体流程 Dubbo-admin监控中心 dubbo-admin下载路径 git clone https://github.com/apache/dubbo-admin.git图1-1 dubbo-admin项目文件展示 执行操作 # 启动zookeeper# 前端 cd dubbo-admin-ui npm i…

多模态融合的基础问题及算法研究

🌞欢迎来到深度学习的世界 🌈博客主页:卿云阁 💌欢迎关注🎉点赞👍收藏⭐️留言📝 🌟本文由卿云阁原创! 🙏作者水平很有限,如果发现错误&#xff…

C++--默认参数

一.默认参数🍗 C中允许函数提供默认参数,也就是允许在函数的声明或定义时给⼀个或多个参数指定默认值。在调 ⽤具有默认参数的函数时,如果没有提供实际参数,C将⾃动把默认参数作为相应参数的值。 二.使用规则🍗 1.如果…