作业不在 cron 中运行,而是手动运行

作业不在 cron 中运行,而是手动运行

我在这个网站上浏览过类似的帖子,但没有一个符合我的查询。

我的 crontab 中有以下内容,但它不起作用。

 * * * * * perl sc.pl

当我像下面这样手动尝试时,我得到了输出。

**perl sc.pl**

请帮我解决这个问题。

答案1

正如 @glenn jackman 提到的,您通常需要至少指定参数中文件的绝对路径,通常还需要指定可执行文件的完整路径。

尝试运行程序(cron、当前 shell/终端等)的进程将PATH在您的环境中有一个变量,指定在哪些目录中查找可执行文件(例如 perl)。运行可执行文件通常基于当前工作目录的相对路径(或没有路径的文件名),并且不会搜索它们或神奇地知道它们在哪里。 cron 作业通常不会与交互式终端会话具有相同的路径变量,并且可能不会在与脚本文件相同的目录中启动(特别是如果您必须光盘在手动运行之前进入目录perl sc.pl

我们的第一个建议是尝试 perl 二进制文件的绝对路径和pl脚本。例子:

* * * * * /usr/bin/perl /path/to/sc.pl

相关内容