python服務重啟
TestCase 測試用例,就是功能里那樣一條條用例
TestSuite 多個測試用例集合在一起,就是TestSuite,就是一個功能模塊的所有用例放這里了
TestLoader是用來載入TestCase到TestSuite中的,這個方法很好玩,可以將一個目錄下的所有python文件里的測試用例摳出來
TestRunner是來執行測試用例的,測試的結果會保存到TestResult實例中,包括運行了多少測試用例,成功了多少,失敗了多少等信息
❷ 如何解決python socket server重啟後埠被佔用的問題
本文介紹下,在solaris 系統下,python socket server重啟後,提示埠被佔用,telnet埠失敗。這里給出一個解決方法,有需要的朋友參考下。
在solaris 系統下,socket server被重啟後,提示埠被佔用,telnet埠又是不成功的,說明服務已被關閉。
通過netstat可以看到埠還處於於fin_wait_2狀態,solaris要4分鍾才能關閉。
遇到這個問題時,可以採用如下的方法解決,以減少等待時間。
1,加上s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)。
代碼:
復制代碼代碼示例:
self.host=socket.gethostbyname(socket.gethostname())
s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
s.bind((self.host,self.port))
s.listen(5)
2,修改系統fin_wait,time_wait的時間設置。這個時間改短,也利於系統系能。
修改方法
查看或設置:
使用get命令來確定當前時間間隔,並使用set命令將時間間隔指定為30秒。
例如:
復制代碼代碼示例:
ndd -get /dev/tcp tcp_time_wait_interval
ndd -set /dev/tcp tcp_time_wait_interval 30000
預設值:對於 Solaris 操作系統,預設等待時間間隔為 240000 毫秒(即 4 分鍾)。
建議值:60000 毫秒。
Solaris TCP_FIN_WAIT_2_FLUSH_INTERVAL
描述:
指定禁止處於FIN_WAIT_2狀態的連接保持該狀態的計時器時間間隔。
當連接比率較高時,這將累積大量的TCP/IP連接,從而導致伺服器性能下降。在高峰時間段,伺服器會發 生延遲。
如果伺服器延遲,netstat命令顯示對HTTP Server打開的許多套接字處於CLOSE_WAIT或FIN_WAIT_2狀態。
明顯的延遲可能會長達4分鍾,其間伺服器無法發送任何響應,但是CPU利用率保持很高,所有活動都在系統進程中。
查看和設置:
使用get命令來確定當前時間間隔,並使用set命令將時間間隔指定為67.5秒。
例如:
復制代碼代碼示例:
ndd -get /dev/tcp tcp_fin_wait_2_flush_interval
ndd -set /dev/tcp tcp_fin_wait_2_flush_interval 67500
預設值:675000 毫秒
建議值:67500 毫秒
Solaris TCP_KEEPALIVE_INTERVAL
描述:
「保持活動」包確保連接保持活動和已建立狀態。
查看或設置:
使用ndd命令來確定當前值或設置該值。
例如:
復制代碼代碼示例:
ndd -set /dev/tcp tcp_keepalive_interval 300000
預設值:7200000 毫秒
建議值:15000 毫秒
❸ linux上像服務一樣啟動python程序,開機自動啟動,能夠start,stop,restart,status等
你的python腳本要做到可以被service來管理,無需將python腳本包到shell腳本里,實現以下六個步驟即可:
1、系統有相應的python解釋器,並在腳本頭部聲明,例如:#!/usr/bin/python
2、給予該腳本可執行許可權,如:chmod +x somescript.py
3、腳本接受第一個命令參數,需要能接受至少包含start的參數,至於stop、restart以及status等並不是必須的,你可以自己來擴展。如: ./somescript.py start 這種命令格式來啟動程序
4、將該腳本放到/etc/rc.d/init.d/路徑下
5、chkconfig --add somescript.py添加服務
6、chkconfig --level 35 somescript.py on 在init為3和5的級別上開機啟動該服務
❹ linux下的python裡面如何用相關的網路模塊來重啟tp-link路由器
你說的總體是可行的,路由器都會提供一個web 的訪問控制界面,python urllib2 可以利用POST 的方式登錄,加一個header 就可以了,下面是登錄一個BBS 的代碼的header:
req=urllib.request.Request(url)
req.add_header('User-agent','Mozilla/5.0')
req.add_header('Content-Type','application/x-www-form-urlencoded')
params=urllib.parse.urlencode({'id':username,
'login.x':24,
'login.y':8,
'login':'登陸',
'pw':password,
'titletype':'forum'
})
params=params.encode('gb2312')
print('Sendrequest!waitingrespose.....')
res=urllib2.urlopen(req,params)
下面是我ppp登錄路由器的方式:
#!/usr/bin/python
#
#License:GNUGPLv2
#
#Scriptforcomtrendhg536+(firmwareA101-302JAZ-C03_R21.A2pB021g.d15h)
#..
importgetpass
importsys
importtelnetlib
importtime
HOST="192.168.1.1"
LOGIN="admin"
PASS="admin"
PROMPT="->"
WAITTIME=40#Numberofsecond
CONNECTIONNAME="0.8.352"#toseeyourconnections,manuallyconnecttorouter(telnet192.168.1.1)anse"wanshow".+ConId.Forexample""0.8.352""
tnt=telnetlib.Telnet(HOST)
tnt.read_until("Login:")
tnt.write(LOGIN+" ")
tnt.read_until("Password:")
tnt.write(PASS+" ")
tnt.read_until(PROMPT)
tnt.write("pppconfig"+CONNECTIONNAME+"down ")
time.sleep(3)
tnt.write(" ")
tnt.write("pppconfig"+CONNECTIONNAME+"up ")
time.sleep(WAITTIME)
tnt.read_until(PROMPT)
tnt.write("pppconfig"+CONNECTIONNAME+"up ")
tnt.write(" ")
tnt.read_until(PROMPT)
tnt.write("13 ")#pressoptiontoexit
tnt.close()
下面重啟路由器:
#!/usr/bin/envpython
#-*-coding:utf-8-*-
importsys
importtelnetlib
importre
importtime
importsys
importos
HOST="192.168.2.1"
password="password"
classbcolors:
HEADER='