第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

通過 Java 代碼檢查進(jìn)程是否在 linux 上運(yùn)行

通過 Java 代碼檢查進(jìn)程是否在 linux 上運(yùn)行

猛跑小豬 2021-10-28 14:45:44
問題是我只想在進(jìn)程運(yùn)行時(shí)殺死它,否則我想做其他事情。這是我現(xiàn)在的代碼(以 sublime 為例):try {    Process p = Runtime.getRuntime().exec("pidof sublime_text");    if (p != null){        Runtime.getRuntime().exec("pkill -f sublime");    }}catch (Exception e) {    System.out.println(e.getMessage());}Runtime.getRuntime().exec("pidof sublime_text");總是返回一個(gè)進(jìn)程,即使這個(gè)進(jìn)程不存在,我的意思是,我可以執(zhí)行:Runtime.getRuntime().exec("pidof nonExistingProcess");這仍然會(huì)返回一個(gè)沒有錯(cuò)誤的進(jìn)程,然后kill“pkill”命令 Runtime.getRuntime().exec("pkill -f nonExistingProcess");也不會(huì)拋出異常,我能做什么做?
查看完整描述

2 回答

?
楊__羊羊

TA貢獻(xiàn)1943條經(jīng)驗(yàn) 獲得超7個(gè)贊

您正在啟動(dòng)進(jìn)程,但沒有讀取它們的輸出或返回狀態(tài)(甚至在等待它們完成),因此您的代碼實(shí)際上不會(huì)以任何方式對(duì)您啟動(dòng)的進(jìn)程做出反應(yīng)。

您可能習(xí)慣于system在 PHP 或類似系統(tǒng)中,該調(diào)用僅在執(zhí)行的命令完成后才返回。Runtime.exec()不同之處在于您開始該過程,但由您來讀取它從Process返回的輸出中的輸出。

所以p實(shí)際上并不代表崇高,但它是正在執(zhí)行的過程pidof,您必須閱讀其輸出才能獲得所需的信息。


查看完整回答
反對(duì) 回復(fù) 2021-10-28
?
白豬掌柜的

TA貢獻(xiàn)1893條經(jīng)驗(yàn) 獲得超10個(gè)贊

當(dāng)然有一個(gè)過程;'pidof someRandomGarbage' 仍然是一個(gè)運(yùn)行的應(yīng)用程序。應(yīng)用程序在運(yùn)行時(shí)返回“nope”這一事實(shí)并不會(huì)神奇地使進(jìn)程消失。您必須使用Process類的方法來確定運(yùn)行的結(jié)果pidof someRandomGarbagep.exitValue()可能就是你要找的。要確定您必須使用的實(shí)際輸出p.getInputStream()。

請(qǐng)注意,使用相對(duì)路徑是一個(gè)非常糟糕的主意;這意味著您依賴于 PATH 變量java 正確解析它。嘗試/usr/bin/pkill,或可配置的東西。


查看完整回答
反對(duì) 回復(fù) 2021-10-28
  • 2 回答
  • 0 關(guān)注
  • 279 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)