![通过 cronjob 运行的简单脚本不起作用,但可以通过 shell 运行](https://linux22.com/image/1410869/%E9%80%9A%E8%BF%87%20cronjob%20%E8%BF%90%E8%A1%8C%E7%9A%84%E7%AE%80%E5%8D%95%E8%84%9A%E6%9C%AC%E4%B8%8D%E8%B5%B7%E4%BD%9C%E7%94%A8%EF%BC%8C%E4%BD%86%E5%8F%AF%E4%BB%A5%E9%80%9A%E8%BF%87%20shell%20%E8%BF%90%E8%A1%8C.png)
我在共享主机上,我试图安排 cronjob 不时运行。我通过 cPanel 安排执行我的脚本,但即使根据我的主机支持 cronjob 运行,脚本似乎也没有做任何事情。我通过 cPanel 设置的 cron job 命令是:
/bin/sh /home1/myusername/public_html/somefolder/cronjob2.sh
和cronjob2.sh
#!/bin/bash
/home1/myusername/public_html/somefolder/node_modules/forever/bin/forever stop 0
当我通过 SSH 执行:
/home1/myusername/public_html/somefolder/cronjob2.sh
它会根据需要永久停止进程。cronjob 不会执行任何操作。
我怎样才能让它工作?
编辑:
所以我尝试过:
/bin/sh /home1/username/public_html/somefolder/cronjob2.sh >> /tmp/mylog 2>&1
并且mylog
条目说:
/usr/bin/env: node: No such file or directory
似乎 forever 需要运行节点,但找不到它。我该如何修复这个问题?
答案1
您可能需要在脚本开始时定义 PATH 和其他环境变量。键入“set”以在当前 shell 中显示它们的值,然后复制/粘贴所需的任何内容,添加行直到脚本正常运行。