使用 crontab 的 flock 无法正常工作

flock with crontab is not working properly

我有一个 crontab 作业,看起来像这样:

*/5 * * * *  /usr/bin/flock -w 0 /home/partners_perfluence_delivery/cron.lock cd /home/partners_perfluence_delivery && /usr/bin/python3 /home/partners_perfluence_delivery/main.py

当我 运行 手动编写 main.py 脚本时,一切都很顺利。当我尝试使用 crontab 作业时,会创建锁定文件,但是当我使用 ps aux | grep main.py 寻找作业时,我在输出中看不到任何内容,而且 main.py 中使用的请求也没有制作

我可能做错了什么?

flock 正在子进程中执行 cd,然后在完成时释放锁。如果 Python 脚本需要在该目录中 运行,则不会发生,因为目录仅在子进程中更改。

您应该使用 flock -c 在同一个 shell 进程中执行 cdpython

*/5 * * * *  /usr/bin/flock -w 0 /home/partners_perfluence_delivery/cron.lock -c 'cd /home/partners_perfluence_delivery && /usr/bin/python3 /home/partners_perfluence_delivery/main.py'