简体   繁体   中英

How can I run a node script from bash using cron

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!

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.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM