gpt4 book ai didi

node.js - child_process 未在 ec2 Nodejs 服务器上执行

转载 作者:太空宇宙 更新时间:2023-11-03 22:20:59 25 4
gpt4 key购买 nike

我的 Node 服务器位于运行 Ubuntu 的 ec2 实例上。

我在 Gitlab 上维护代码并在那里推送更新。

手动更新过程只是简单地提取更改并重新启动我想要自动化的服务器,为此我使用 Gitlab webhook 并创建了一个执行的简单端点:

 childProcess.exec('git pull && bash deploy.sh',{ cwd: '/home/ubuntu/someXyzFolder' }, function(err, stdout, stderr){
if (err) {
return res.status(500).send(err);
}
res.status(200).send("OK");
});

因此 childProcess 无法执行这些命令,因为它发送 500 状态并出现此错误:

{"killed":false,"code":1,"signal":null,"cmd":"git pull && bash deploy.sh"}

有几个人遇到过这个问题,并通过由于内存不足而创建交换区来解决它

我在我的服务器上运行了free命令并回复了

ubuntu@ip-xxx-xxx-xxx-xxx:/var/somefolder/somefolder$ free
total used free shared buff/cache available
Mem: 1007532 404276 381512 772 221744 452944
Swap: 0 0 0

按照这个,我应该有足够的内存吧?

我不确定 Linux oom 是否正在杀死它或其他什么。

请告诉我你对此的想法。

-谢谢

编辑:这是我的deploy.sh

git pull
npm install
gulp build
sudo killall forever
sudo killall node

rm /removeTheSymlinkOfTheCurrentBuildFolder
ln -s /makeaNewFolderWithCurrentTimeStamp/`ls -ltr /some | tail -n 1 | awk {' print $9 '}` /andMakeItCurrent

sudo forever /currentBuildFolder/server.js &

最佳答案

所以,我终于解决了这个问题。

ssh是我以ubuntu用户登录时生成的,然后存储在Gitlab中。

我正在使用sudo打开我的第二个服务器(这将杀死并重新启动我的主服务器),这导致了问题。

现在一切似乎都运行良好。

关于node.js - child_process 未在 ec2 Nodejs 服务器上执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55217521/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com