使用 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 进程中执行 cd
和 python
。
*/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'
我有一个 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 进程中执行 cd
和 python
。
*/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'