簡體   English   中英

從Ubuntu上的另一個腳本啟動python腳本進程:如何跟蹤狀態?

[英]launching python script process from another script on Ubuntu: how to track status?

我使用命令在Amazon EC2 Ubuntu實例上從另一個Python腳本中啟動一個Python腳本:

os.system(call) 

call有表格的地方

"./script2.py arg1 arg2 arg3"

我注意到,不時會以某種方式終止script2.py 我有一些日志記錄,但它們沒有顯示正在發生的事情。 所以我的問題是:

  1. 我讀到system()返回某種退出狀態。 區分正常和異常終止的最佳測試是什么? 也就是說,如果存在某種異常終止,我只想在調用腳本中生成一條日志消息。
  2. 是否有任何類型的系統日志,我可以嘗試找到已終止進程的痕跡?

假設您的子腳本沒有使用標准輸出,並且在崩潰時返回非零(這應該是python可執行文件的默認值):

import subprocess as sp

try:
    sp.check_output(['python', 'child.py'], stderr=sp.STDOUT)
except sp.CalledProcessError as err:
    print 'Child terminated abnormally with error %d, log:' % err.returncode
    print err.output

1> os.system返回系統代碼如果它返回0進程運行並成功終止但是如果它返回任何數字然后通常它意味着錯誤但是它取決於程序如何響應錯誤我的意思是如果progam在成功時返回1 os.system將返回1

例如

d = os.system('ls')
print d 
d = os.system(your process)
print d

2> python提供的syslog模塊你可以嘗試一下

>>>import syslog
>>>help(syslog)

syslog是os本身提供的內置unix api

http://docs.python.org/2/library/syslog.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM