这是我第一次在 stackOverflow 中给出答案。我用jdk1.6.0_32在我的centos6.3中设置了MPJExpress-v0_42,最后一切似乎都OK了。
问题1:无法连接到机器和端口的守护进程
守护程序未运行时可能会发生这种情况。您可以尝试如下:
- 您可以使用它
sudo netstat -anp |grep port来检查端口是否正在侦听并获取 processId。
在我的机器上,使用 启动守护程序后mpjdaemon -boot localhost,我使用sudo netstat -apn |grep 4000命令检查端口并得到以下信息。
tcp 0 0 :::40000 :::* LISTEN 8766/java
tcp 0 0 :::40001 :::* LISTEN 8766/java
端口配置在里面$MPJ_HOME/conf/wrap.conf,我的配置如下:
#port number for the daemon.
wrapper.app.parameter.2=40001
#Socket Server Port Number.
wrapper.app.parameter.3=40000
我也是用jps -m命令获取java daemon进程,结果如下:
8766 MPJDaemon 40001
30850 Jps -m
这里8766是netstat显示的processId,MPJDaemon是守护进程,40001是监听端口。
在您的问题中,您无法连接守护进程。执行以下操作:
- 你应该检查端口。如果找不到使用的端口
netstat,一般是指MPJDaemon is not running.
- 可以肯定的是,您也可以使用 jps 来检查进程。也许进程正在运行,但端口是另一个
- 不要使用
mpjboot machines或之类的集群命令mpjrun.sh -np 2 -dev niodev HelloWorld。您可以使用mpjdaemon -boot localhost测试当前机器,如果它配置好,您可以使用一项设置机器文件localhost并运行集群命令。
我遇到的其他问题。
问题2:使用ant编译失败
起初我使用MPJ-v0_44.zipand jdk1.6.0,但它无法编译并给出错误 that ProcessBuilder has no method of "interNIO"(something like that)。我分析了源代码,猜测可能是因为JDK版本低了一点。鉴于升级 JDK 有点复杂,我找到了另一个 MPJ 版本,mpj-v0_42.zip它编译正常。
问题 3:mpjdaemon -boot localhost没有错误信息,但 MPJDeamon 没有运行。
在我配置了MPJ_HOMEfrom .bash_profileto这样的环境变量后.bashrc,问题就解决了。我不知道为什么。
问题 4:命令jps -m说“MPJDeamon is running”,但mpjdaemon -status localhost说“mpjdeamon is not running”。
我使用命令(ssh localhost nohup 'jps -m'),它说jps找不到命令,但我使用 jps 命令工作正常。我想可能是和上面一样的问题。jps的路径没有在路径环境变量中配置.bashrc。因此,在添加一行PATH=/jpspath:$PATHin后.bashrc,一切正常。