Home > Software engineering >  How can I run a node script from bash using cron
How can I run a node script from bash using cron

Time:03-22

I have this cron job running on Ubuntu

02 12 * * * quigley-user /mnt/block/alphabits/start.sh >> /mnt/block/alphabits/start.log

The cron job runs on schedule as expected.

I have this snippet in the start.sh script

while read -r ticker apiName ;
   do
      echo "$ticker $apiName"
      sudo /usr/bin/node /mnt/block/alphabits/index.js $ticker $apiName
   done < /mnt/block/alphabits/fmpList.txt

The echo line shows the expected results, however the index.js script does not run. I can't find an error but maybe I'm missing something. If I run the command that's in the cron job from the command line it executes properly

What am I missing? Thanks!

CodePudding user response:

It is possible your node.js relative import path is missing from crontab context.

And possible other implicit environment variables configurations for node.js

Assuming your user $HOME directory is /home/user1

Suggesting:

Add the following line, into your 2nd line in your start.sh

  #!/bin/bash
  source /home/user1/.bash_profile

This line will add your users' context path and environment variables to your script.

  • Related