在OS X中运行PhantomJS作为守护进程
Running PhantomJS as daemon in OS X
我正在使用Zend框架和phantomJS为我工作的网站渲染图像。我有一个作业侦听器脚本,它循环并在队列中查找作业。在找到作业后,它使用作业消息中的数据来构建phantomJS命令,并通过php的EXEC命令。
如果我自己从命令行启动作业监听器,这个过程会非常有效。但是,如果守护进程用户(OSX中的web用户)尝试运行phantomJS,则不会发生任何事情。没有错误消息,什么都没有。
我尝试了几种方法,包括
1.将此行添加到sudoers守护进程ALL=NOPASSWD:/usr/bin/fintomjs
2.赋予phantomjs及其父目录777权限
3.赋予守护进程phantomjs的所有权
然而,尽管如此,我还是无法从Daemon用户那里获得execute phantomJS。
如果有人能为我指明正确的方向或提出一些建议,我将不胜感激。
提前感谢
Dan
您可以尝试像服务一样运行phantomjs脚本,而不是通过EXEC命令来运行它。
使用名为Mongoose的嵌入式web服务器模块,PhantomJS脚本可以启动web服务器。这是为了方便PhantomJS脚本与外部世界之间的通信,不建议用作通用生产服务器。
有关嵌入式web服务器如何工作的信息,请参阅此处
这里有一个关于PhantomJS脚本如何启动web服务器的示例。
var server = require('webserver').create();
var service = server.listen('127.0.0.1:8080', function(request, response) {
response.statusCode = 200;
response.write('<html><body>Hello!</body></html>');
response.close();
});
服务运行后,它可以发送一个JSON对象作为响应,PHP可以很容易地对其进行解释。
收听任何域server.listen('8080', ....)
设置HTTP响应标头response.setHeader("Access-Control-Allow-Origin","*");
- 节点分叉子进程并获取它's错误
- 子进程未接收消息
- 我想放慢html中进程栏的速度
- 派生进程的stdout在管道传输时工作异常
- 定时Ajax进程在用户离开页面后继续
- 事件循环的MEAN.JS setInterval进程(从另一个服务器获取数据)
- 从已经运行的进程打开chrome扩展的背景页
- 用于本地主机上进程间通信的Javascript中的UDP
- AWS Lambda上的权限问题,可以't派生子进程
- PM2 在运行时更改集群进程大小
- 不同进程之间共享Node.js环境
- 链接CSS、Javascript和HTML进程失败
- 如何通过子进程连接Java应用程序后在node.js中编写文件
- Node.js使用派生两个子进程,然后两个子进程如何相互交换
- jar文件的后台进程,如何在进程结束时异步通知我
- Meteor - 如何同时运行多个服务器进程
- 如何从nodejs中的守护进程生成gpg子进程
- 从Ajax执行PHP脚本,而不需要等待答案(也不需要守护进程)
- 英特尔xdk守护进程与英特尔伽利略gen2
- 在OS X中运行PhantomJS作为守护进程