用于PHP脚本的Crontab将运行Node.js脚本

时间:2018-07-15 01:02:40

标签: php node.js

我设置了一个crontab,它将每分钟运行一个PHP脚本来检查我的Steam机器人是否在游戏中,如果不是,请运行一个节点js脚本。

这是我的crontab:

* * * * * /usr/bin/php /home/cron/checkStatus.php >/dev/null 2>&1

这是我的PHP脚本:

shell_exec("screen -AdmS bot /usr/local/bin/node /home/node_modules/mine/script.js");

当我自己运行命令时,节点js脚本启动,但是,当crontab尝试启动节点js脚本时,什么也没有发生。想法?

1 个答案:

答案 0 :(得分:0)

Node.js具有一个称为HTTP的内置模块,该模块允许Node.js通过超文本传输​​协议(HTTP)传输数据。

要包括HTTP模块,请使用require()方法:

var http = require('http');

HTTP模块可以创建一个HTTP服务器,该服务器侦听服务器端口并将响应返回给客户端。

使用createServer()方法创建HTTP服务器:

var http = require('http');

//create a server object:
http.createServer(function (req, res) {
  res.write('Hello World!'); //write a response to the client
  res.end(); //end the response
}).listen(8080); //the server object listens on port 8080

之后,使用NPM安装名为PM2的软件包。

NPM是一个软件包管理器,您将使用该软件包管理器来安装框架和库以与Node.js应用程序一起使用。 NPM与Node.js一起安装。 PM2是一个可爱的小工具,它将为您解决两个问题:

  1. 如果崩溃,它将通过重新启动应用程序来保持站点正常运行。这些崩溃不应该发生,但是很高兴知道PM2可以帮助您。 (有些人可能知道Forever.js,这是用于使基于节点的站点保持运行的另一种工具-我认为您会发现PM2提供了很多功能。)

    1. 它将在每次重新启动服务器时将节点应用程序作为服务重新启动,从而为您提供帮助。一些使用者知道执行此操作的其他方法,但是pm2使其更容易,并且具有更多的灵活性。

通过在命令行中键入thr来安装PM2:

sudo npm install pm2 -g