如何通过cron启动node.js和Ruby应用程序

时间:2019-06-27 09:31:29

标签: node.js ruby shell cron

我看到了一个嵌入了Ruby的node.js应用程序。

以下代码生成一个PDF文件,使用gemma虾将值从node.js传递到Ruby。 Node程序在Centos上运行。

问题是当我使用root手动启动程序时

sudo node server.js

程序执行并正常工作。当cron使用以下命令执行该程序时,该程序将执行并正常工作。使用以下命令将其作为cron任务执行时

reboot cd /var/www/html/myapp/ && sudo node server.js

未执行Ruby部分。为什么,如何解决?

Node.js代码:

var command = 'ruby report.rb "' + RagioneSociale + '" "' + NomeCantiere + '"  "' + Note + '"  "' + Nome + '" "' + Cognome + '"  "' + Telefono + '" "' + Email + '" "' + Filiale + '" "' + NumeroRapporto + '" "' + Indirizzo + '" "' + Cap + '" "' + Citta + '" "' + Provincia + '" ';
...
    //Genero il rapportino e ritorno il valore
    result = await new Promise((resolve, reject) => {
      exec(command, function (err, stdout, stderr) {
        if (stderr) {
          ManageError.SendError("Errore generazione PDF con ruby" + err);
          reject(false);
        } else if (stderr) {
          ManageError.SendError("Errore generazione PDF con ruby" + err);
          reject(false);

        } else {
          //Eliminazione del file temporaneo
          fs.unlink(tempfilename, function (err) {
            if (err) {
              ManageError.SendError("Errore eliminazione file txt temporaneo" + err);
            }
          });
          //Codifica PDF in Base64 rapportino
          base64.encode('rapportino.pdf', function (err, base64String) {

            resolve(base64String);
          });
        }
      });
    });

0 个答案:

没有答案