文档章节

3.6 rc脚本(start方法) 3.7 rc脚本(stop和status方法) 3.8 rc脚本(以daemon方式启动)

 隐匿的蚂蚁
发布于 2018/12/10 01:40
字数 264
阅读 5
收藏 1

3.6-3.7 rc脚本(start、stop和status方法)

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# [@Version](https://my.oschina.net/u/931210) : python 2.7
# [@Time](https://my.oschina.net/u/126678)    : 2018/12/10 0:54
# [@Author](https://my.oschina.net/arthor)  : zhang xun
# [@File](https://my.oschina.net/u/726396)    : rc.py
import sys

import os

from subprocess import Popen, PIPE


class Process(object):
	'''memcached rc script'''
	def __init__(self,name,program,args,workdir):
		self.name = name
		self.program = program
		self.args = args
		self.workdir = workdir

	def _init(self):
		'''/var/tmp/memcached'''
		if not os.path(self.workdir)
			os.makedir(self.workdir)
			os.chdir(self.workdir)
		else :
			os.chdir(self.workdir)


	def _pidFile(self):
		'''/var/tmp/memcached/memcached.pid'''
		return os.path.join(self.workdir, "%s.pid" % self.name)

	def _withPid(self):
		if self.pid:
			with open(self._pidFile(),'w') as fd :
				fd.write(str(self.pid))
	def start(self):
		cmd = self.program + ' ' + self.args
		p = Popen(cmd,stdout=PIPE,shell=True)
		self.pid = p.pid
		self._withPid()
		print(" STARTED ! ")


	def _getPid(self):
		p = Popen(['pidof',self.name],stdout=PIPE)
		pid = p.stdout.read().strip()
		return pid

	def stop(self):
		pid = self._getPid()
		if pid:
			os.kill(int(pid),15)
			if os.path.exists(self._pidFile()):
				os.remove(self._pidFile())
			print ("STOPED !")
	def restart(self):
		self.stop()
		self.stop()

	def status(self):
		pid = self._getPid()
		if pid :
			print (" started ")
		else :
			print (" stoped ")

3.8 rc脚本(以daemon方式启动)

© 著作权归作者所有

共有 人打赏支持
粉丝 0
博文 21
码字总数 14196
作品 0
青岛
私信 提问
Python学习-20180112

一、 rc脚本(类的定义与脚本的结构) 二、rc脚本(start方法) 三、rc脚本(stop和status方法) 四、rc脚本(以daemon方式启动) 在linux下安装memcached,并用python写一个启动,关闭,启动...

wxy丶
2018/01/14
0
0
Python编写的memcached启动脚本

Python编写memcached启动脚本 测试环境:CentOS 7 Python版本: 2.7 安装memcached:输入下面命令安装并用脚本测试 yum install -y memcached libmemcached libevent 测试方法:把脚本内容粘...

枫叶云
2018/01/12
0
0
Linux的Service/Daemon你真的懂了吗?

一 service与一般的程序的区别 service(也称为daemon)表示后台运行的程序,一般随系统的启动自动地启动且在用户logoff后仍然能够继续运行。该daemon进程一般在启动后需要与父进程断开关系,...

jims
2016/10/01
0
0
rc.local自启动学习

linux有自己一套完整的启动体系,抓住了linux启动的脉络,linux的启动过程将不再神秘。 本文中假设inittab中设置的init tree为: /etc/rc.d/rc0.d /etc/rc.d/rc1.d /etc/rc.d/rc2.d /etc/rc....

五大三粗
2016/01/14
29
0
Python编写memcached启动脚本

Python编写memcached启动脚本 安装memcached:输入下面命令安装并用脚本测试 测试方法:把脚本内容粘贴到rc.py文件中,shell下运行如果下命令: 一、rc 脚本的start、stop、restart、status方...

枫叶云
2018/12/07
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Java并发编程基础(二)

线程安全与数据同步

chendom
20分钟前
0
0
在Centos7 上安装SVN

在Centos7 上安装SVN 2017年11月16日 17:07:54 crossangles_2017 阅读数:2543 1、安装 使用yum安装非常简单: yum install subversion 2、配置 创建仓库 我们这里在/opt下建立一个名为svn的...

linjin200
22分钟前
0
0
牛津词典 2018 年度词汇 ——「有毒」!

简评:本文并没有「标题党」,牛津词典公布的 2018 年度词汇就是 Toxic. 意为「有毒的」。 2018 was toxic. Toxic 这个词是什么意思呢? 牛津词典(Oxford Dictionaries)在 Word of the Da...

极光推送
28分钟前
1
0
浅谈Service Mesh体系中的Envoy

https://blog.csdn.net/yunqiinsight/article/details/81019255

易野
37分钟前
1
0
嵌入式应用选择合适的微控制器

准备所需硬件接口列表 使用微控制器的基本硬件框图,准备一份微控制器需要支持的所有外设接口的列表。微控制器中有两种常见的接口类型需要列出。第一种是通信接口,这些是外围设备,如USB,S...

linuxCool
44分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部