关于在 crontab 上调度的 shell 脚本中执行 python 程序

关于在 crontab 上调度的 shell 脚本中执行 python 程序

我有一个关于 crontab 的问题。我有一个名为 checker.sh 的脚本,我想安排它每分钟运行一次:

* * * * * sh /home/pi/checker.sh

我这里有脚本: 截屏

这个脚本的概念来自这里: Linux 脚本检查进程是否正在运行并对结果采取行动

问题是:每当我结束 python 进程来检查是否checker.sh可以运行 python 脚本时,它都不起作用。我不知道问题出在哪里。我尝试在脚本本身上将 python 的路径名更改为 /usr/bin/pythonchecker.sh但仍然不起作用。

我希望有人能解决这个问题。

答案1

在 crontab 中使用完全限定的路径。

/bin/sh /home/pi/checker.sh

答案2

您在 shell 脚本中指定了 bash,然后尝试在 crontab 中使用 sh 调用脚本。实际上不需要在 crontab 中指定 shell,因为您在 shebang 中指定了它,所以这应该可以正常工作:

* * * * * /home/pi/checker.sh

答案3

尝试使用 cd 和完整路径显式导航到 shell 脚本本身内的目录。我有一个类似的问题并通过这样做解决了它。例如,在脚本顶部#!/bin/bash放置:

cd /home/pi/Some_Directory`
# the rest of your script

答案4

这似乎是一个相对较老的问题,但我相信问题出在标题(舍邦)。您的脚本具有以下标头:

#! /bin/bash

然而,它应该是:

#!/bin/bash 

也就是说,#!和之间没有空格/bin/bash。我以前也遇到过这种情况,删除空格就解决了。

相关内容