【问题标题】:Run node.js script from cron fails, manual works fine从 cron 运行 node.js 脚本失败,手动工作正常
【发布时间】:2017-03-16 07:27:39
【问题描述】:

我正在尝试在启动时从 cron 运行脚本;我见过很多对 Path vars 的引用,但没有一个对我的情况有所帮助。

定时任务:

@reboot /home/pi/nodestart.sh

这是脚本:

#!/bin/bash
cd /home/pi/Public/abc/
source $HOME/.profile
NODE_PATH=/usr/lib/nodejs:/usr/lib/node_modules:/usr/share/javascript
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/games:/usr/games
sleep 2
nodemon app.js < /dev/null >/home/pi/startup.log 2>/home/pi/startup.err &

请注意,我使用了相对路径和绝对路径的所有组合

这是错误日志(从 cron 运行时):

pi@dev:~ $ cat startup.err 
module.js:471
throw err;
^

Error: Cannot find module 'sugar'
at Function.Module._resolveFilename (module.js:469:15)
at Function.Module._load (module.js:417:25)
at Module.require (module.js:497:17)
at require (internal/module.js:20:19)
at Object.<anonymous> (/home/pi/Public/abc/logutil.js:3:17)
at Module._compile (module.js:570:32)
at Object.Module._extensions..js (module.js:579:10)
at Module.load (module.js:487:32)
at tryModuleLoad (module.js:446:12)
at Function.Module._load (module.js:438:3)

它似乎找到了如下所示的其他模块:

//app.js
var express             = require('express');
var logger = require('tracer').colorConsole();
var fs                  = require('fs');
var multer              = require('multer');
var app                 = express();
var async               = require('async');
var bodyParser          = require('body-parser'); 
var ejs                 = require('ejs'); 
const clientSessions    = require("client-sessions");
var db                  = require('./dbutil');
var log                 = require('./logutil');
var passThru            = require('stream').PassThrough;
var Sugar               = require('sugar');

有什么想法吗?

【问题讨论】:

  • 模块是如何安装的?糖是全球安装吗?
  • 全球范围内,对不起! sudo npm install sugar -g
  • NodeJs 的路径是什么
  • NODE_PATH=/usr/lib/nodejs
  • 嗯,它的设置与我的安装不同。是文件夹中的糖:/usr/lib/node_modules

标签: node.js cron


【解决方案1】:

Sugar(以及其他一些模块,一旦我通过了 Sugar)不在正确的位置。我不知道如何描述它们应该去哪里,但我把它们放在 /home/pi/node_modules 中 - 这成功了,cron 现在在重新启动时运行良好。

【讨论】:

    猜你喜欢
    • 2017-05-09
    • 1970-01-01
    • 2017-03-09
    • 2013-06-27
    • 1970-01-01
    • 1970-01-01
    • 2012-07-03
    • 2013-11-29
    • 2019-10-21
    相关资源
    最近更新 更多