我已经设置了这个crontab @reboot "/home/pi/Desktop/TV Scraper 2.0/run.sh",不管出于什么原因,它似乎没有在重启时运行bash文件。
在终端上输入"/home/pi/Desktop/TV Scraper 2.0/run.sh"实际上运行了脚本,所以我知道它是正确的。这是run.sh内部的内容,以防万一:
#!/bin/bash
cd "/home/pi/Desktop/TV Scraper 2.0"
node ./app.js我也尝试过使用@reboot root sh "/home/pi/Desktop/TV Scraper 2.0/run.sh",但也不起作用。
我怎样才能继续这样做呢?我对Linux的了解非常有限。我所需要的只是在每次重新启动时都运行一些Node和Python3脚本。在Windows环境下,这是一个非常简单的任务:我尝试过CRON、rc.local和autostart,但是没有任何东西工作。
发布于 2022-04-17 16:52:28
我的猜测是,node无法通过cronjob获得,因为它包含的目录不在PATH环境变量中。当您手动执行脚本时,它可能可以通过PATH获得。
解决这个问题的一个简单方法是使用完整的路径,您可以通过执行which node来获得这个路径。结果应该是类似于/usr/bin/node。然后您可以使用它,而不仅仅是node。
为了调试目的,还可以将stdout和stderr重定向到文件,因此脚本中的最后一行如下所示:
/usr/bin/node ./app.js &>/tmp/cron-debug.log如果这不能修复它,我将重命名目录"TV刮刀2.0“,并用类似下划线的东西替换空格字符。如果避免使用空格,目录和文件名就不太可能造成问题。
https://stackoverflow.com/questions/71903585
复制相似问题