亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在Linux上使用Python檢查進程是否仍在運行?

如何在Linux上使用Python檢查進程是否仍在運行?

呼喚遠方 2021-03-21 19:18:07
我發現的唯一好方法是:import sysimport ostry:        os.kill(int(sys.argv[1]), 0)        print "Running"except:        print "Not running"但這可靠嗎?它適用于每個流程和每個發行版嗎?
查看完整描述

3 回答

?
汪汪一只貓

TA貢獻1898條經驗 獲得超8個贊

畢竟,Mark的答案就是解決之道,這就是/ proc文件系統在那里的原因。對于一些復制/粘貼的東西:


 >>> import os.path

 >>> os.path.exists("/proc/0")

 False

 >>> os.path.exists("/proc/12")

 True


查看完整回答
反對 回復 2021-03-22
?
慕田峪9158850

TA貢獻1794條經驗 獲得超8個贊

在Linux上,您可以在目錄/ proc / $ PID中查找有關該進程的信息。實際上,如果目錄存在,則該進程正在運行。


查看完整回答
反對 回復 2021-03-22
?
慕妹3146593

TA貢獻1820條經驗 獲得超9個贊

它可以在任何POSIX系統上運行(盡管/proc正如其他人所建議的那樣,查看文件系統會更容易,如果您知道它將存在的話)。


但是:os.kill如果您無權發信號通知過程,也可能會失敗。您將需要執行以下操作:


import sys

import os

import errno


try:

    os.kill(int(sys.argv[1]), 0)

except OSError, err:

    if err.errno == errno.ESRCH:

        print "Not running"

    elif err.errno == errno.EPERM:

        print "No permission to signal this process!"

    else:

        print "Unknown error"

else:

    print "Running"


查看完整回答
反對 回復 2021-03-22
  • 3 回答
  • 0 關注
  • 515 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號