Программа Bash, которая выполняется на дочернем процессе Node.js, не показывает эхо - PullRequest
0 голосов
/ 02 января 2019

Фон

Я работаю над проектом node.js + реакции.

Я делаю систему автоматического развертывания на моем сервере Ubuntu, у которого есть мой источник.

Итак, я сделал сервер webhook.js и развернул файл .sh.

webhook.js предназначен для прослушивания сообщения, отправленного webhook github, когда я нажимаю какой-то новый коммит, и запускаю программу bash deploy.sh.

deploy.sh выполняет git pull origin master и перезапускает мой сервер.

webhook.js

const secret = 'xxxxxxxx';

let http = require('http');
let crypto = require('crypto');

const exec = require('child_process').exec;

http.createServer(function(req, res){
  req.on('data', function(chunk){
    let sig = "sha1=" + crypto.createHmac('sha1', secret).update(chunk.toString()).digest('hex');

    if (req.headers['x-hub-signature'] == sig) {
      deploy(res);
    } else {
      console.log('un matched');
    }
  });
  res.end();
}).listen(8080);

function deploy(res){
  exec('/home/rpf5573/nodewebhook/deploy.sh', function(err, stdout, stderr){
    console.log('deploy.sh is called');
    if (err) {
      console.error(err);
      res.writeHead(404);
      return res.end();
    }
    res.writeHead(200);
    res.end();
  });
}

deploy.sh

cd /home/rpf5573/react-discovery-v2

echo "Pulling from Master" 

git pull origin master

echo "Pulled successfully from master"

echo "Restarting server..."

npm restart-server

echo "Server restarted Successfully"

Итак, в чем ваша проблема?

my deploy.sh dosent показывает любое сообщение echo. git pull origin master выполняется хорошо, но не работает только эхо-сообщение!

Как я могу увидеть эхо-сообщение?

Это потому, что deploy.sh выполняется другой оболочкой?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...