的多个实例,我使用了Twitter自动转推机器人,有时20分钟后,机器人停止,有时它不会停止。为了解决这个问题,我使用crontab每20分钟重新运行程序。crontab的运行相同的.py
*/20 * * * * /home/TwitterFollowBot/bot.py 2>/tmp/twitterBot.log
但问题是如果bot在20分钟内没有停止运行2X,因为crontab还会每20分钟启动另一个实例。如果机器人不停止,这将继续发生。有时它运行10X,这意味着它的转发量超过了限制。所以我需要做的是每19分钟杀死所有/这个bot.py,并在20分钟时间内运行一个新的bot.py。
bot.py
#!/usr/bin/env python
from TwitterFollowBot import TwitterBot
my_bot = TwitterBot("/home/TwitterFollowBot/config.txt")
my_bot.sync_follows()
my_bot.auto_rt("@SupStreamers", count=2200)
my_bot.auto_rt("@#SupportSmallStreamers", count=2200)
my_bot.auto_rt("@Small_Streamers", count=2200)
如何保持一个锁定文件,告诉脚本是否正在运行? – fedorqui
这似乎是一个经典的[XY问题](http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem)。为什么你不试图弄清楚如何在崩溃之前杀死你的机器人,试图弄清为什么它有时会在20分钟后崩溃?对于SO来说,这将是更明智的*和更适合的问题。 – Phillip
你认为这会解决我的问题吗?如果ti停止?我必须手动运行它吗?这意味着我必须每20分钟检查一次VPS。如我错了请纠正我。 –