python web服務管理指令碼

2021-10-09 18:05:45 字數 3865 閱讀 1024

​ 1.python_path為python解析器路徑,預設已做python3對映

​ 2.log_index為日誌編號,用以記錄啟動次數及提供每次啟動分不同日誌功能(暫未啟用)

​ 3.port選擇不衝突、可使用的埠

​ 4.max_process最大程序數一般小於硬體核數

​ 管理指令碼需與服務入口平級

"""

python服務控制

控**務的啟動、關閉、重啟、檢視

"""import os

import time

import signal

import readline

python_path =

'python3'

log_index =

0port =

9700

max_process =

4def

start()

:"""

啟動服務

:return:

"""path = os.popen(

'pwd'

).readlines()[

0]process_info = os.popen(

'ps -ef | grep server.py | grep -v grep'

).readlines(

) process_num =

len(process_info)

print

(process_info)

ifnot

(process_num)

:# os.system('cd' + 路徑)

os.system(

'nohup {} server.py {} {}&'

.format

(python_path, port, max_process)

)# log_index += 1

time.sleep(5)

process_info_result = os.popen(

'ps -ef | grep server.py | grep -v grep'

).readlines(

)for pid in process_info_result:

print

('pid:'

, pid,

'已啟動',)

defstop_chicd()

:"""

結束子程序

:return:

"""parent_list = os.popen(

"ps -ef | grep server.py | grep -v grep | awk ''"

).readlines(

)print

('parent_list:'

, parent_list)

for pid in parent_list:

os.kill(

int(pid)

, signal.sigkill)

print

('pid'

, pid,

'stoped'

)def

stop_parent()

:"""

結束主程序

:return:

"""parent_list = os.popen(

"ps -ef | grep server.py | grep -v grep | awk ''"

).readlines(

)print

('parent_list:'

, parent_list)

for pid in parent_list:

os.kill(

int(pid)

, signal.sigkill)

print

('pid'

, pid,

'stoped'

)def

stop_parent2()

:"""

結束子程序

:return:

"""index =

0 parent_list = os.popen(

"ps -ef | grep server.py | grep -v grep | awk ''"

).readlines(

)print

('parent_list:'

, parent_list)

for pid in parent_list:

index = index +

1if index:

os.kill(

int(pid)

, signal.sigkill)

print

('pid'

, pid,

'stoped'

)def

watch()

:"""

檢視當前已啟動服務程序

:return:

"""parent_list = os.popen(

"ps -ef | grep server.py"

).readlines(

)for process_pid in parent_list:

print

(process_pid)

defrestart()

: stop_chicd(

) stop_parent2(

) time.sleep(1)

start(

)def

do_func

(key)

: func_config =

if key not

in func_config:

return no_func

return func_config[key]

defno_func()

:print

('無效命令,請重新輸入!'

)def

stop_all()

: stop_chicd(

) stop_parent(

)if __name__ ==

'__main__'

:import sys

try: fun = sys.ar**[1]

port =

int(sys.ar**[2]

) max_process =

int(sys.ar**[3]

)except exception as e:

print

('no para'

) fun =

''while1:

print

('------------------------------'

)print

('| start:開啟服務 |'

)print

('| stop:停止服務 |'

)print

('| restart:重啟服務 |'

)print

('| watch:檢視已啟動的服務程序 |'

)print

('| 輸入exit退出 |'

)print

('------------------------------'

) code =

input

('請輸入控制命令:'

)if code ==

'exit'

:break

else

: do_func(code)

()

python web服務學習 flask

flask是乙個使用 python 編寫的輕量級 web 應用框架。也是開發python web服務最常用的框架之一。第一步當然是安裝flask,依然是pip安裝 學習flask可以從官網的quick start 開始,這裡有許多的小例子,先看乙個最簡單的 from flask import fla...

Memcache 服務管理指令碼

自定義指令碼將memcached作為系統服務啟動以及開機啟動。在 etc init.d 目錄下新建乙個指令碼,名稱為 memcached。內容如下 vi etc init.d memcached bin bash description memcached service daemon proces...

uwsgi部署python web框架伺服器

環境部署搭配 linux系統 python3 flask uwsgi 其中 檢視系統版本 cat etc redhat release 1.新增乙個使用者 新增使用者 adduer wch 修改密碼 passwd wch 新增到sudo使用者組 gpasswd a wch wheel 切換到wch使...