簡體   English   中英

subprocess.popen在cronjob中不返回任何輸出

[英]subprocess.popen not returning any output in cronjob

我有一個python腳本,需要在linux中收集命令行實用程序的輸出。 我已經使用下面的子過程方法來讀取輸出:

proc = subprocess.Popen(["cmd","arg"], stdout=subprocess.PIPE, shell=True)
(raw_domain, err) = proc.communicate()

當我從bash手動執行腳本時,它可以正常工作並返回命令輸出,但是,當我將此腳本執行添加到crontab時,subprocess.popen不返回任何輸出。

Crontab表達式:

* * * * root python /apoorv/cleanup_null_domain.py

我使用日志驗證了“空白”返回,對此我非常確定。

想要提及的是,我也使用了os.popen方法。 結果相同:(

您正在代碼中捕獲stdout和stderr,因此顯然不會輸出任何內容。 打印這些值,或者更好的是將它們寫入日志文件。

編輯腳本的第一行

#!/usr/bin/env python

要么

#!/usr/bin/python

並使其可執行

chmod +x /apoorv/cleanup_null_domain.py

然后在crontab中

* * * * root /apoorv/cleanup_null_domain.py

暫無
暫無

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

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