CN107729073A - 一种基于Python多进程库创建systemd服务的方法 - Google Patents

一种基于Python多进程库创建systemd服务的方法 Download PDF

Info

Publication number
CN107729073A
CN107729073A CN201710867983.2A CN201710867983A CN107729073A CN 107729073 A CN107729073 A CN 107729073A CN 201710867983 A CN201710867983 A CN 201710867983A CN 107729073 A CN107729073 A CN 107729073A
Authority
CN
China
Prior art keywords
systemd
services
python
created based
process storehouse
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201710867983.2A
Other languages
English (en)
Inventor
段璐恒
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhengzhou Yunhai Information Technology Co Ltd
Original Assignee
Zhengzhou Yunhai Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Zhengzhou Yunhai Information Technology Co Ltd filed Critical Zhengzhou Yunhai Information Technology Co Ltd
Priority to CN201710867983.2A priority Critical patent/CN107729073A/zh
Publication of CN107729073A publication Critical patent/CN107729073A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本发明提供了一种基于Python多进程库创建systemd服务的方法,所述的方法包括:S1:利用Python多进程库启动子程序,并创建相应功能的主体代码;S2:利用函数指令退出主程序;S3:创建服务启动脚本及配置文件,并发送给systemd。基于python的多进程库和linux的systemd系统来实现一套更加方便管理的守护进程,从而创建更易用的服务程序,提高运维效率。

Description

一种基于Python多进程库创建systemd服务的方法
技术领域
本发明涉及系统管理技术领域,具体的说是一种基于Python多进程库创建systemd服务的方法。
背景技术
systemd是linux下的进程管理系统,主要用来管理各种进程,对一些常驻进程进行监控或者用于收发消息,便于用户通过系统实现相应的功能。
传统上对于这类功能的应用,一般都是编写一个shell脚本,然后用nohup加上后台运行符‘&’让程序在后台运行提供服务,但是这种方法智能实现简单的监控,无法实现systemd的统一管理,运维效果较差。
发明内容
为了解决上述问题,提供了一种基于Python多进程库创建systemd服务的方法,基于python的多进程库和linux的systemd系统来实现一套更加方便管理的守护进程,从而创建更易用的服务程序,提高运维效率。
本发明实施例提供了一种基于Python多进程库创建systemd服务的方法,所述的方法包括:
S1:利用Python多进程库启动子程序,并创建相应功能的主体代码;
S2:利用函数指令退出主程序;
S3:创建服务启动脚本及配置文件,并发送给systemd。
进一步的,所述的方法还包括:
S4:systemd启动服务。
进一步的,步骤S4的具体实现过程为:systemd利用systemctl命令安装服务,并启动服务。
进一步的,步骤S1的具体实现过程为:
基于想要实现的功能,在Python多进程库中选取相应的进程类;
利用选取的进程类启动其对应的子程序;
在启动的子程序内完成要进行工作的主体代码。
进一步的,步骤S2的具体实现过程为:确定子程序征程运行后,启用os._exit()函数退出主程序。
进一步的,步骤S3的具体实现过程为:
创建启动服务的脚本;
创建systemd配置文件,并将服务类型设置为forking类型;
将创建完成的所有服务信息发送给systemd。
发明内容中提供的效果仅仅是实施例的效果,而不是发明所有的全部效果,上述技术方案中的一个技术方案具有如下优点或有益效果:
1、本方案利用Python多进程库来编写符合systemd管理规范的服务,创建出来的服务可以统一被systemd管理,增加服务的可管理性,降低运维成本。
2、利用Python多进程库中相应的进程类启动其对应的子程序,并在启动的子程序内完成要进行工作的主体代码,可以实现对进程工作的守护,确保进程不会意外终止。
3、利用os._exit()函数退出主程序,不会对程勋运行产生影响,为后续创建符合systemd管理规范的服务提供了便利。
附图说明
图1是本发明实施例1的方法流程图;
图2是本发明实施例2的方法流程图。
具体实施方式
为能清楚说明本方案的技术特点,下面通过具体实施方式,并结合其附图,对本发明进行详细阐述。下文的公开提供了许多不同的实施例或例子用来实现本发明的不同结构。为了简化本发明的公开,下文中对特定例子的部件和设置进行描述。此外,本发明可以在不同例子中重复参考数字和/或字母。这种重复是为了简化和清楚的目的,其本身不指示所讨论各种实施例和/或设置之间的关系。应当注意,在附图中所图示的部件不一定按比例绘制。本发明省略了对公知组件和处理技术及工艺的描述以避免不必要地限制本发明。
实施例1
如图1所示的一种基于Python多进程库创建systemd服务的方法,所述的方法包括:
S1:利用Python多进程库启动子程序,并创建相应功能的主体代码。具体实现过程为:
1)基于想要实现的功能,在Python多进程库中选取相应的进程类。
2)利用选取的进程类,启动其对应的子程序。
3)在启动的子程序内完成要进行工作的主体代码,主要目的是确保子程序可以单独实现进程功能。
S2:利用函数指令退出主程序。具体实现过程为:确定子程序征程运行后,启用os._exit()函数退出主程序。
S3:创建服务启动脚本及配置文件,并发送给systemd。具体实现过程为:首先,创建启动服务的脚本;然后,创建编写systemd配置文件,并将服务类型设置为forking类型;最后,将创建完成的所有服务信息发送给systemd。
实施例2
如图2所示的一种基于Python多进程库创建systemd服务的方法,所述的方法包括:
S1:利用Python多进程库启动子程序,并创建相应功能的主体代码。具体实现过程为:
1)基于想要实现的功能,在Python多进程库中选取相应的进程类。
2)利用选取的进程类,启动其对应的子程序。
3)在启动的子程序内完成要进行工作的主体代码,主要目的是确保子程序可以单独实现进程功能。
S2:利用函数指令退出主程序。具体实现过程为:确定子程序征程运行后,启用os._exit()函数退出主程序。
S3:创建服务启动脚本及配置文件,并发送给systemd。具体实现过程为:首先,创建启动服务的脚本;然后,创建systemd配置文件,并将服务类型设置为forking类型;最后,将创建完成的所有服务信息发送给systemd。
S4:systemd启动服务。具体实现过程为:systemd利用systemctl命令安装服务,并启动服务。
尽管说明书及附图和实施例对本发明创造已进行了详细的说明,但是,本领域技术人员应当理解,仍然可以对本发明创造进行修改或者等同替换;而一切不脱离本发明创造的精神和范围的技术方案及其改进,其均涵盖在本发明创造专利的保护范围当中。

Claims (6)

1.一种基于Python多进程库创建systemd服务的方法,其特征是:所述的方法包括:
S1:利用Python多进程库启动子程序,并创建相应功能的主体代码;
S2:利用函数指令退出主程序;
S3:创建服务启动脚本及配置文件,并发送给systemd。
2.根据权利要求1所述的一种基于Python多进程库创建systemd服务的方法,其特征是:所述的方法还包括:
S4:systemd启动服务。
3.根据权利要求2所述的一种基于Python多进程库创建systemd服务的方法,其特征是:步骤S4的具体实现过程为:systemd利用systemctl命令安装服务,并启动服务。
4.根据权利要求1或2所述的一种基于Python多进程库创建systemd服务的方法,其特征是:步骤S1的具体实现过程为:
基于想要实现的功能,在Python多进程库中选取相应的进程类;
利用选取的进程类启动其对应的子程序;
在启动的子程序内完成要进行工作的主体代码。
5.根据权利要求1或2所述的一种基于Python多进程库创建systemd服务的方法,其特征是:步骤S2的具体实现过程为:确定子程序征程运行后,启用os._exit()函数退出主程序。
6.根据权利要求1或2所述的一种基于Python多进程库创建systemd服务的方法,其特征是:步骤S3的具体实现过程为:
创建启动服务的脚本;
创建systemd配置文件,并将服务类型设置为forking类型;
将创建完成的所有服务信息发送给systemd。
CN201710867983.2A 2017-09-22 2017-09-22 一种基于Python多进程库创建systemd服务的方法 Pending CN107729073A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710867983.2A CN107729073A (zh) 2017-09-22 2017-09-22 一种基于Python多进程库创建systemd服务的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710867983.2A CN107729073A (zh) 2017-09-22 2017-09-22 一种基于Python多进程库创建systemd服务的方法

Publications (1)

Publication Number Publication Date
CN107729073A true CN107729073A (zh) 2018-02-23

Family

ID=61207834

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710867983.2A Pending CN107729073A (zh) 2017-09-22 2017-09-22 一种基于Python多进程库创建systemd服务的方法

Country Status (1)

Country Link
CN (1) CN107729073A (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101645966A (zh) * 2009-09-04 2010-02-10 三星电子(中国)研发中心 一种手机终端上的自动化操作系统
CN102426594A (zh) * 2011-10-31 2012-04-25 沈文策 对数据库进行操作的方法和系统
CN105740124A (zh) * 2016-02-01 2016-07-06 南京邮电大学 一种面向云计算监控系统的冗余数据过滤方法
US20170065894A1 (en) * 2015-09-08 2017-03-09 Kenneth Mark Woog Extensible Video Game Time Limiter
CN106844062A (zh) * 2016-12-23 2017-06-13 华南师范大学 一种在C++与Python模块间实现实时双向协助的通信方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101645966A (zh) * 2009-09-04 2010-02-10 三星电子(中国)研发中心 一种手机终端上的自动化操作系统
CN102426594A (zh) * 2011-10-31 2012-04-25 沈文策 对数据库进行操作的方法和系统
US20170065894A1 (en) * 2015-09-08 2017-03-09 Kenneth Mark Woog Extensible Video Game Time Limiter
CN105740124A (zh) * 2016-02-01 2016-07-06 南京邮电大学 一种面向云计算监控系统的冗余数据过滤方法
CN106844062A (zh) * 2016-12-23 2017-06-13 华南师范大学 一种在C++与Python模块间实现实时双向协助的通信方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
EACON: "Python如何实现守护进程的方法示例", 《HTTPS://WWW.JB51.NET/ARTICLE/104971.HTM》 *
TAB609: "systemd实现python的守护进程", 《HTTPS://BLOG.CSDN.NET/LUCKYTANGGU/ARTICLE/DETAILS/53467687》 *

Similar Documents

Publication Publication Date Title
US10740114B2 (en) Component invoking method and apparatus, and component data processing method and apparatus
CN106095530B (zh) 一种多Android系统的容器自动创建及其启动方法
US10733017B2 (en) Task scheduling based on performance control conditions for multiple processing units
RU2004100523A (ru) Средство разработки активного содержимого: исполнение задач и структурированного содержимого
WO2016112625A1 (zh) 一种在预设嵌入式系统中实现脚本操作的系统
CN104216785A (zh) 通用策略任务系统及其实现方法
CN103514007B (zh) 一种基于Android系统的移动终端的热启动的方法
US10318456B2 (en) Validation of correctness of interrupt triggers and delivery
CN106533719A (zh) 一种实现集群部署的方法及系统
CN111400125A (zh) Java进程的内存溢出监控方法、装置、设备及存储介质
CN103514038A (zh) 一种虚拟系统的平滑关闭方法及系统
CN110018765A (zh) 页面显示方法、装置、终端及存储介质
CN104461746A (zh) 一种基于Android系统的内存空间优化方法及系统
CN108304209A (zh) 固件升级方法及固件升级系统
CN107918555A (zh) 基于物理主机的用于处理数据的方法和装置
CN107517223A (zh) 一种远程更新mellanox网卡软件的方法及系统
CN108566297A (zh) VOI虚拟化下的Windows网卡驱动加载方法
CN105335195A (zh) 一种设备驱动升级方法、装置及电子设备
CN107729073A (zh) 一种基于Python多进程库创建systemd服务的方法
CN107977206B (zh) 一种批量业务数据文件处理方法及装置
CN109587284A (zh) 一种远程自动配置机房服务器bmc网口ip的方法与系统
JP2021131897A (ja) スケジューリング方法、装置、設備、記憶設備、及びプログラム
CN113326098B (zh) 支持kvm虚拟化与容器虚拟化的云管平台
CN110333969A (zh) 系统升级后应用启动异常处理方法及装置、介质和设备
CN107168707A (zh) 一种自动更新linux系统所有外插卡设备驱动的方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20180223