Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 当腻子窗关闭时,机器人关闭_Javascript_Putty_Discord.js - Fatal编程技术网

Javascript 当腻子窗关闭时,机器人关闭

Javascript 当腻子窗关闭时,机器人关闭,javascript,putty,discord.js,Javascript,Putty,Discord.js,我创建了一个discord机器人,现在正试图在Ubuntu机器上运行它。 我安装了bot和NodeJs的文件夹,下面是我用来安装NodeJs的内容: sudo apt-get install -y nodejs 然后我使用cd选择目录,并使用node index.js 机器人启动了,但是当我去关闭腻子并在VPS上保持它运行时,机器人关闭了。下面是目录的外观 当putty关闭时,NodeJS实例终止。您需要一些东西来保持实例的活动性。尝试: PM2: 或者 永远: 不过,建议将节点实例作为服务运

我创建了一个discord机器人,现在正试图在Ubuntu机器上运行它。
我安装了bot和NodeJs的文件夹,下面是我用来安装NodeJs的内容:

sudo apt-get install -y nodejs
然后我使用
cd
选择目录,并使用
node index.js

机器人启动了,但是当我去关闭腻子并在VPS上保持它运行时,机器人关闭了。下面是目录的外观


当putty关闭时,NodeJS实例终止。您需要一些东西来保持实例的活动性。尝试:

PM2:

或者

永远:

不过,建议将节点实例作为服务运行,这样可以在启动时重新启动。试着看看这个:

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

为了避免这种情况,您可以使用主机服务,如
screen
tmux
nohup
bg
等等……
如果您想知道哪个是最好的,请尝试查看askUbuntu堆栈交换

关键概念是使用
tmux
命令(或
screen
,…)打开一个新窗口,然后像往常一样运行bot。当您想离开但保持流程运行时,您可以使用组合键分离会话,该组合键会随着服务的变化而变化。
如果您想再次访问该窗口,可以运行一个命令“恢复”您的会话,如

tmux list-sessions
tmux attach-session -t 0

外壳在前景中运行。这意味着您在那里启动的任何脚本都将在您结束会话后结束。一个简单的解决方案是通过在调用后添加&在后台运行脚本:

node index.js &

更好的解决方案是创建一个服务,您可以请求服务守护进程为您运行。但是,添加&应该可以满足您目前的需求。

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

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

 $ npm install forever -g
根据用户的权限,您可能需要使用
SUDO
,以使其正常工作。由于存在安全风险,不建议在生产中使用

一旦将CD安装到您的项目文件目录并像您键入的“node index.js”一样,您将对ForeverJS执行类似的操作

$ forever start index.js
现在,当您退出终端时,您的NodeJS应用程序将保持运行状态。

另请参见: