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使...