国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

利用python腳本如何簡化jar操作命令

2020-02-16 01:20:26
字體:
來源:轉載
供稿:網友

前言

本篇和大家分享的是使用python簡化對jar包操作命令,封裝成簡短關鍵字或詞,達到操作簡便的目的。最近在回顧和構思shell腳本工具,后面一些文章應該會分享shell內容,希望大家繼續關注。

獲取磁盤中jar啟動包 獲取某個程序進程pid 自定義jar操作命令

獲取磁盤中jar啟動包

這一步驟主要掃描指定磁盤中待啟動的jar包,然后獲取其路徑,方便后面操作java命令:

#獲取磁盤中jar啟動包def find_file_bypath(strDir): filelist = os.listdir(strDir) for file in filelist:  if os.path.isdir(strDir + "/" + file):   find_file_bypath(strDir + "/" + file)  else:   if(file.find(".jar") >= 0):    fileInfo = MoFileInfo(file,strDir + "/" + file)    all_list.append(fileInfo)

這個遞歸獲取路徑就不多說了,可以參考前一篇文章

獲取某個程序進程pid

在linux中獲取某個程序pid并打印出來通常的命令是:

1 ps -ef | grep 程序名字

在py工具中同樣用到了grep命令,通過執行linux命令獲取相對應的pid值:

#獲取piddef get_pid(name): child = subprocess.Popen(['pgrep', '-f', name], stdout=subprocess.PIPE, shell=False) response = child.communicate()[0] print(response) return response

這里直接取的第一個值,因為上面第一節已經能夠定位到程序jar包的名字,所以獲取pid很容易

自定義jar操作命令

自定義其實就是用我們隨便定義的單詞或關鍵字來代替jar包操作命令,這里我封裝了有5種,分別如下:

nr:nohup java -jar {} 2>&1 & r:java -jar {} k:kill -9 {} d:rm -rf {} kd:kill -9 {}

{}代表的是pid和jar包全路徑,相關代碼:

#執行命令def exec_file(index): try:  if(index <= -1):   pass  else:   fileInfo = all_list[int(index)]   print("你選擇的是:{}".format(fileInfo.path))   strcmd = raw_input("請輸入執行命令(nr:nohup啟動java r:java啟動 k:kill d:刪除java包 kd:kill+刪除jar包):/r/n")   if(strcmd == "nr"):   os.system("nohup java -jar {} 2>&1 & ".format(fileInfo.path))   elif(strcmd == "r"):   os.system("java -jar {}".format(fileInfo.path))   elif(strcmd == "k"):   pid = get_pid(fileInfo.name)   print("pid:" + pid)   strcmd_1 = "kill -9 {}".format(pid)   exec_cmd(strcmd_1)   elif(strcmd == "d"):   strcmd_1 = "rm -rf {}".format(fileInfo.path)   exec_cmd(strcmd_1)   elif(strcmd == "kd"):   pid = get_pid(fileInfo.name)   strcmd_1 = "kill -9 {}".format(pid)   exec_cmd(strcmd_1)   strcmd_1 = "rm -rf {}".format(fileInfo.path)   exec_cmd(strcmd_1)   else:   print("無任何操作") except:  print("操作失敗")

這里python操作linux命令用到的方式是os.system(command) ,這樣已定保證了linux命令執行成功后才繼續下一步的操作;下面是本次分享內容的全部代碼:

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 吕梁市| 扶风县| 台中县| 建德市| 页游| 当涂县| 陈巴尔虎旗| 乌恰县| 南郑县| 永年县| 射洪县| 加查县| 洞口县| 那坡县| 大同市| 临澧县| 东乡族自治县| 吐鲁番市| 法库县| 博爱县| 油尖旺区| SHOW| 隆子县| 大悟县| 华池县| 孟连| 丹巴县| 利川市| 新兴县| 三台县| 合肥市| 于田县| 确山县| 宜川县| 兴国县| 小金县| 合江县| 灵武市| 攀枝花市| 忻城县| 闻喜县|