腻子窗口关闭时机器人关闭

时间:2018-12-01 21:34:05

标签: javascript putty discord.js

我创建了一个不和谐的bot,现在正尝试在Ubuntu机器上运行它。
我安装了bot和NodeJ的文件夹,这是我用来安装NodeJS的文件夹:

sudo apt-get install -y nodejs

然后我使用cd选择目录,然后使用node index.js

启动我的机器人

机器人启动了,但是当我关闭油灰并使其在VPS上运行时,机器人关闭了。这是目录的样子。

Root directory tree

4 个答案:

答案 0 :(得分:1)

我认为问题在于,当您在腻子窗口中启动该应用程序时,该过程将链接到该窗口,并在关闭该窗口时终止。

为避免这种情况,您可以使用主机服务,例如screentmuxnohupbg等...
如果您想知道哪个最好,请尝试从askUbuntu Stack Exchange查看this question

关键概念是您使用tmux命令(或screen,...)打开一个新窗口,然后像往常一样运行您的机器人。当您想离开但保持流程运行时,可以使用一个键组合来分离会话,该键组合因服务而异。
如果您想再次访问该窗口,则可以运行将“恢复”会话的命令,例如

tmux list-sessions
tmux attach-session -t 0

答案 1 :(得分:0)

关闭腻子时,NodeJS实例终止。您需要一些东西来使实例保持活动状态。试试:

PM2:http://pm2.keymetrics.io/

永远:https://github.com/foreverjs/forever#readme

但是建议将节点实例作为可以在启动时重新引导的服务来运行。试试看这个: https://stackoverflow.com/a/29042953/7739392

答案 2 :(得分:0)

shell在前台运行。这意味着您在会话中开始的所有脚本都将在结束会话后结束。一个简单的解决方案是在调用后添加&来在后台运行脚本:

node index.js &

更好的解决方案是创建一个服务,您可以要求服务守护程序为您运行。但是,添加&可以使您立即获得所需的东西。

答案 3 :(得分:0)

我建议使用这两个节点模块之一-ForeverJSPM2。我将向您展示如何快速开始使用ForeverJS,但是PM2会非常相似。

您可以通过在终端中键入以下内容来轻松安装ForeverJS:

 $ npm install forever -g

您可能需要根据用户的权限使用SUDO才能使其正常工作。出于安全性考虑,不建议在生产中使用它。

将CD安装到项目文件目录后,就像您键入“ node index.js”一样,您将使用ForeverJS做类似的事情。

$ forever start index.js

现在,当您退出终端时,您的NodeJS应用程序将保留为正在运行的进程。