使用intellij远程调试节点js服务器
Posted
技术标签:
【中文标题】使用intellij远程调试节点js服务器【英文标题】:Remote Debugging of node js server using intellij 【发布时间】:2016-07-24 03:03:33 【问题描述】:看到很多关于远程 Node js 服务器调试的帖子,并尝试了很多他们的解决方案,但没有设法让我的配置正常工作
我在 Windows PC 上安装了 Intellij 使用以下“Node.js 远程调试”配置: 主机:my-server.dev.com 端口:5858
节点服务器本身安装在 UBUNTU 上,并在其上定义了以下端口转发规则: socat TCP-LISTEN:5858,fork TCP:localhost:6000
并且服务器使用以下命令运行(集群: /usr/local/n/versions/node/0.10.44/bin/node --debug=6000 /opt/play/play-server/main.js)
Intellij 将会话显示为已连接但不能在断点处中断
【问题讨论】:
【参考方案1】:我们采取了几个步骤来解决这个问题: 1.启动要使用的脚本执行器:“n use 0.10.44 --debug” //(这是我的脚本)
forever \
--pidFile $PIDFILE \
-a \
-l $LOGFILE \
--minUptime $MIN_UPTIME \
--spinSleepTime $SPIN_SLEEP_TIME \
start -c "n use 0.10.44 --debug" $APPLICATION_PATH 2>&1 > /dev/null &
RETVAL=$?
-
在远程集群上创建转发规则(此处为端口 6000)
socat TCP-LISTEN:5858,fork TCP:localhost:6000
在你 fork 之前的节点服务器中:
var debug = process.execArgv.indexOf('--debug') !== -1; 如果(调试) //设置一个未使用的端口号。 process.execArgv.push('--debug=' + (6000)); var childProcess = cluster.fork();
这允许我使用我在问题中设置的相同 intellij 配置仅调试一个集群进程
【讨论】:
以上是关于使用intellij远程调试节点js服务器的主要内容,如果未能解决你的问题,请参考以下文章
flinkFlink 使用IntelliJ IDEA 进行远程调试代码
使用 Intellij 在远程服务器上部署/调试 java 代码