在cPanel上托管Discord机器人

时间:2018-11-18 11:48:45

标签: node.js cpanel discord.js

我有一个问题,当我想在使用cPanel的服务器上打开我的discord机器人时,如果不将shell命令node index.js放入其中,就无法从node.js控制面板上使它工作package.json文件,并使用面板的运行脚本功能。问题在于,停止bot的唯一方法是在discord上使用eval命令,因为我没有适当的终端访问权限。

3 个答案:

答案 0 :(得分:0)

在cPanel上,您永远不会拥有完全的终端访问权限,因此,我建议您做的就是保留NPM启动脚本,然后为发布process.exit()函数的机器人创建一个命令。此函数实质上停止了整个NodeJS进程。如果您正在寻找可提供完全终端访问权限的替代产品,我建议从像OVH这样的优质提供商那里购买便宜的VPS。

答案 1 :(得分:0)

除了上面@Verdigris回答的内容外,您也可以使用Glitch,只需确保使用Runtime Bot,这样就可以使Discord bot保持24/7的速度。

  

重要:要添加到主node.js文件中的代码:

const http = require('http');
const express = require('express');
const app = express();
app.get("/", (request, response) => {
console.log(Date.now() + "Ping Received");
response.sendStatus(200);
});
app.listen(process.env.PORT);
setInterval(() => {
http.get(`http://${process.env.PROJECT_DOMAIN}.glitch.me/`);
}, 280000);

一如既往的欢呼。

答案 2 :(得分:0)

如果您的 cPanel 帐户有浏览器内终端,您可以通过将出现在 Node.js 控制面板顶部的命令粘贴到那里来进入虚拟环境。它是这样的:

source ~/nodevenv/<name_of_node_application>/10/bin/activate && cd ~/<path_to_node_application>

然后您将可以访问 node 和 npm,然后可以像往常一样启动您的 discord 机器人:

node <name_of_node_application> &

并通过从 kill -TERM 使用节点的 pid 运行 ps -ax 来杀死它。

但是,您不能可靠地使用 Node.js 面板来停止守护程序脚本,如下所述: cpanel node.js Can't acquire lock for app: app