使用子进程执行 python 脚本时 Cron 作业失败
Cron job fails when executing python script with subprocess
我的 cron 运行设置如下时没问题:
* * * * * usr/local/bin/python3 /Users/username/path/to/my/script1.py
* * * * * bash -c -l "/Users/username//path/to/my/script2.sh"
当我像这样在终端中手动运行上述脚本时,它也有效:
usr/local/bin/python3 /Users/username/path/to/my/script1.py
sh /Users/username//path/to/my/script2.sh
但是,当我尝试 运行 两个脚本作为计划为 cron 作业的 parent.py 脚本中的子进程时,它不会工作并抛出此错误:
/bin/sh: usr/local/bin/python3: No such file or directory
我的parent.py代码:
import subprocess
subprocess.run('usr/local/bin/python3 /Users/username/path/to/my/script1.py && sh /Users/username//path/to/my/script2.sh', shell=True)
然而,当我像这样在终端中手动 运行 parent.py 时,它工作正常:
usr/local/bin/python3 /Users/username/path/to/my/parent.py
我试过将 #!/usr/local/bin/python3
添加到我的 parent.py 但这没有帮助。
有人可以帮忙吗?提前致谢。
您在 usr/local/python3!
之前少了一个斜线
应该是/usr/local/python3
有关详细信息,请参阅 this。
我的 cron 运行设置如下时没问题:
* * * * * usr/local/bin/python3 /Users/username/path/to/my/script1.py
* * * * * bash -c -l "/Users/username//path/to/my/script2.sh"
当我像这样在终端中手动运行上述脚本时,它也有效:
usr/local/bin/python3 /Users/username/path/to/my/script1.py
sh /Users/username//path/to/my/script2.sh
但是,当我尝试 运行 两个脚本作为计划为 cron 作业的 parent.py 脚本中的子进程时,它不会工作并抛出此错误:
/bin/sh: usr/local/bin/python3: No such file or directory
我的parent.py代码:
import subprocess
subprocess.run('usr/local/bin/python3 /Users/username/path/to/my/script1.py && sh /Users/username//path/to/my/script2.sh', shell=True)
然而,当我像这样在终端中手动 运行 parent.py 时,它工作正常:
usr/local/bin/python3 /Users/username/path/to/my/parent.py
我试过将 #!/usr/local/bin/python3
添加到我的 parent.py 但这没有帮助。
有人可以帮忙吗?提前致谢。
您在 usr/local/python3!
之前少了一个斜线应该是/usr/local/python3
有关详细信息,请参阅 this。