【问题标题】:Do I need put " python" infront for the .py if write a crontab for it?如果为它写一个 crontab,我是否需要在 .py 前面加上“python”?
【发布时间】:2016-11-26 15:27:17
【问题描述】:

如果为它写一个 crontab,我是否需要在 .py 前面加上“python”? 我就是这样做的-*/10 * * * * /home/TwitterFollowBot/python bot.py 这个对吗?我需要每 10 分钟运行一次。即使在关闭终端后它还能工作吗?

11 月 26 日 07:12:01 ip************* CRON[3180]: (root) CMD (python /home/TwitterFollowBot/bot.py) 11 月 26 日 07:13:01 ip************* CRON[3190]: (root) CMD (python /home/TwitterFollowBot/bot.py) 11 月 26 日 07:14:01 ip************* CRON[3195]: (root) CMD (python /home/TwitterFollowBot/bot.py) 11 月 26 日 07:15:01 ip************* CRON[3211]: (root) CMD (python /home/TwitterFollowBot/bot.py) 11 月 26 日 07:16:01 ip************* CRON[3226]: (root) CMD (python /home/TwitterFollowBot/bot.py) 11 月 26 日 07:17:01 ip************* CRON[3243]: (root) CMD (python /home/TwitterFollowBot/bot.py) 11 月 26 日 07:17:01 ip************* CRON[3244]: (root) CMD (cd / && run-parts --report /etc/cron.hourly) 11 月 26 日 07:18:01 ip************* CRON[3275]: (root) CMD (python /home/TwitterFollowBot/bot.py) 11 月 26 日 07:19:01 ip************* CRON[3278]: (root) CMD (python /home/TwitterFollowBot/bot.py) 11 月 26 日 07:20:01 ip************* CRON[3282]: (root) CMD (python /home/TwitterFollowBot/bot.py)

【问题讨论】:

标签: python crontab


【解决方案1】:

如何在不直接调用“python”的情况下执行python文件

如果要执行 python 文件,直接将文件设置为可执行文件(例如使用chmod +x bot.py)并在bot.py 的第一行添加一个shebang,如下所示:

#!/usr/bin/env python

然后就可以直接调用`/home/TwitterFollowBot/bot来执行python文件了。

错误的(可能的)原因

我猜你的错误可能是因为你试图执行一个不存在的 python。你有:

/home/TwitterFollowBot/python bot.py

您的命令试图在/home/TwitterFollowBot 目录中执行一个可能不存在的python 二进制文件(除非您在那里安装了python)。也许你的意思是执行:

python /home/TwitterFollowBot/bot.py

这将执行路径上找到的python,并将您的python文件的绝对路径作为其参数。

【讨论】:

  • 所以让我澄清一下,我所要做的就是在 bot.py 的顶部添加 (#!/usr/bin/env python) 并使 crontab 像这样? */10 * * * * /home/TwitterFollowBot/bot.py 还有一件事,这是每 10 分钟重新启动一次的正确方法吗? */10 * * * * /home/TwitterFollowBot/bot.py
  • 是的,shebang (#!) 描述了程序应该如何运行/usr/bin/env python 将找到系统上安装的 python 并运行它。 */10 每 10 分钟运行一次看起来是正确的。
  • 非常感谢。最后一件事,正如你上面提到的,我必须把“python”放在“/home/TwitterFollowBot/bot.py”之前吗?像这样的“python /home/TwitterFollowBot/bot.py”或只是“/home/TwitterFollowBot/bot.py”
  • 如果您添加了正确的 shebang 并使其正确可执行(只需在命令行上将脚本运行为“/home/TwitterFollowBot/bot.py”进行测试,那么您不需要“ python”在它之前在crontab中。
  • 我像你说的那样试过了,但还是不行:(
猜你喜欢
  • 1970-01-01
  • 2012-11-22
  • 2013-12-02
  • 2018-03-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-15
相关资源
最近更新 更多