关于javascript:节点cron没有在EC2上运行

Node cron not running on EC2

我在EC2上将python和节点脚本设置为cron作业。 python脚本运行但节点脚本不运行。从命令行手动激活时,节点脚本运行正常。这是一个简单的脚本,可以找出今天是假日,然后将boolian答案放入名为isHoliday.csv的文件中。

到目前为止我尝试过的:

  • 设置为crontab使用:crontab -e(本图中的最后一项)
    enter image description here
  • 设置为crontab使用:sudo crontab -e
    enter image description here
  • 创建了一个奇怪的cron.d文件,将cron细节放入其中,并使用:sudo crontab -e; chmod'd it 0644如上所示。
    cron.d内容:
    enter image description here
  • 我看到日志文件在sudo cron中名为holiday_script.log,在cron.d文件中名为holiday.log,但都没有创建日志文件。

  • 用绝对路径替换相对路径。 (但我认为这仍然是最可能的罪魁祸首。)
  • holiday.js文件中的代码:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    // Check if it is a holiday, t/f
    var holidayChecker = require('usa-holidays');
    var date = new Date();
    var holidayObj = holidayChecker.make(date);
    var isHoliday = !holidayObj.isBusinessDay();

    // put the answer into a file so it can be read by python crons
    var fs = require('fs');
    fs.writeFile("/home/ec2-user/stack/isHoliday.csv", isHoliday, function(err) {
        if(err) {
            return console.log(err);
        }
    });

    enter image description here


    我不知道确切的解决方案,但您可以通过移动到其他目录来查看您的cron日志。 首次登录EC2时,请执行两次:cd ..
    这将带你到两个目录。 然后你需要像这样将用户切换到sudo:sudo su
    然后转到var / log文件夹。 应该有一个名为"cron"的文件。 由于您将crons设置为*****,因此该文件应该每秒填充数据。 键入以下命令:tail -f cron。 这将允许您看到实时执行的crons。

    此外,"邮件"通知:导航到该文件夹并使用less来阅读邮件。 该文件将有更多线索。 使用向下箭头向下滚动。

    这不是答案,但它会帮助你前进一点。