CN107729073A - 一种基于Python多进程库创建systemd服务的方法 - Google Patents
一种基于Python多进程库创建systemd服务的方法 Download PDFInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring 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服务的方法。
背景技术
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。
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)
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模块间实现实时双向协助的通信方法 |
-
2017
- 2017-09-22 CN CN201710867983.2A patent/CN107729073A/zh active Pending
Patent Citations (5)
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)
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 |