【问题标题】:python multithreading issue in cronjob no executecronjob中的python多线程问题没有执行
【发布时间】:2020-01-05 11:31:01
【问题描述】:

我有一个 script.py 调用其他多处理脚本如下我的 scripts.py:

import os
from multiprocessing import Pool

scriptspy = [
    '/pyscripts/apoiont01.py',
    '/pyscripts/access.py',
    '/pyscripts/dental.py',
    '/pyscripts/cremers.py',
    '/pyscripts/delcuritib.py',
    '/pyscripts/dtalndes.py',
    '/pyscripts/lobo.py',
    '/pyscripts/ierre.py',
    '/pyscripts/daster.py',
    '/pyscripts/dsul.py',
    '/pyscripts/doema.py',
    '/pyscripts/maz.py',
    '/pyscripts/deura.py',
    '/pyscripts/der.py',
    '/pyscripts/dlo.py',
    '/pyscripts/deoltda.py',
    '/pyscripts/dpeed.py',
    '/pyscripts/derr.py',
    '/pyscripts/dweb.py',
]


def roda_processo(processo):
    os.system('python3.7 {}'.format(processo))


for s in scriptspy:
    roda_processo(s)

我的 crontab -e:

* * * * 1,5 /usr/local/bin/python3.7 /pyscripts/scripts.py > /pyscripts/logs/scripts.log

有趣的是,如果我在终端上运行相同的手动运行命令:/ usr / local / bin / python3. 7 /pyscripts/scripts.py > / pyscripts/logs / scripts.log 它运行正常。

日志/var/log/cron.log: https://gist.githubusercontent.com/braganetx/a05c8b7257df79305dd1b79008323011/raw/8aec453a74566e8872608d1705f05004c1e12e5e/log

【问题讨论】:

    标签: python linux multithreading cron multiprocessing


    【解决方案1】:

    您应该将其替换为具有 Python 解释器完整路径的版本,因为从 cron 运行的任何内容都缺少“通常”的环境变量设置,即 PATH 是您最缺少的:

    def roda_processo(processo):
        os.system('/usr/local/bin/python3.7 {}'.format(processo))
    

    【讨论】:

    • 好的,我明白了。我要淡化下一个计划周期,看看它现在是否可以运行。
    • @JB_ 如果您觉得它有帮助,您可以投票和/或接受答案 =)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多