在不修改的情况下启动 Mule 进行远程调试 wrapper.conf
Starting Mule for remote debugging without modifying wrapper.conf
由于工作需要,我一直使用 Mule 3.4.0 版。我正在编写一个服务脚本来管理 Mule 的服务生命周期,并且真的希望能够让它挂起并等待调试器根据参数中是否存在某个选项进行连接。
我对 Bash 和实现这个很满意,但是我很难让 Mule 传递
-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=9989
底层Java进程,因为它使用自己的(愚蠢的)包装器来处理Java.
我正在尝试修改 bin/mule
脚本,使其具有一种名为 debug
的模式,该模式会在调用时将上述调试器选项传递给 JVM:
bin/mule debug
我目前的工作can be found here on PasteBin,这是第511行附近的相关部分:
debug() {
echo "Debugging $APP_LONG_NAME..."
getpid
if [ "X$pid" = "X" ]
then
# The string passed to eval must handle spaces in paths correctly.
COMMAND_LINE="$CMDNICE \"$WRAPPER_CMD\" \"$WRAPPER_CONF\" wrapper.syslog.ident=$APP_NAME wrapper.pidfile=\"$PIDFILE\" $ANCHORPROP $LOCKPROP"
######################################################################
# Customized for Mule
######################################################################
echo "command line: $COMMAND_LINE"
echo "mule opts: $MULE_OPTS"
echo "JPDA_OPTS: $JPDA_OPTS"
eval $COMMAND_LINE $JPDA_OPTS $MULE_OPTS
######################################################################
else
echo "$APP_LONG_NAME is already running."
exit 1
fi
}
我无法升级到更新版本的 Mule。我需要找到一种方法来修改此脚本,以便在使用 bin/mule debug
调用时简单地等待调试器。我已经对其进行了足够的修改以进入我定义的这个 debug
函数,它基本上是他们自己的 console
函数的副本,用于在控制台模式下启动。我似乎无法弄清楚如何将我的调试选项传递给 JVM。有什么想法吗?
documentation 之后的参数 -debug
出现在 3.4.x:
./mule -debug
试一试。
由于工作需要,我一直使用 Mule 3.4.0 版。我正在编写一个服务脚本来管理 Mule 的服务生命周期,并且真的希望能够让它挂起并等待调试器根据参数中是否存在某个选项进行连接。
我对 Bash 和实现这个很满意,但是我很难让 Mule 传递
-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=9989
底层Java进程,因为它使用自己的(愚蠢的)包装器来处理Java.
我正在尝试修改 bin/mule
脚本,使其具有一种名为 debug
的模式,该模式会在调用时将上述调试器选项传递给 JVM:
bin/mule debug
我目前的工作can be found here on PasteBin,这是第511行附近的相关部分:
debug() {
echo "Debugging $APP_LONG_NAME..."
getpid
if [ "X$pid" = "X" ]
then
# The string passed to eval must handle spaces in paths correctly.
COMMAND_LINE="$CMDNICE \"$WRAPPER_CMD\" \"$WRAPPER_CONF\" wrapper.syslog.ident=$APP_NAME wrapper.pidfile=\"$PIDFILE\" $ANCHORPROP $LOCKPROP"
######################################################################
# Customized for Mule
######################################################################
echo "command line: $COMMAND_LINE"
echo "mule opts: $MULE_OPTS"
echo "JPDA_OPTS: $JPDA_OPTS"
eval $COMMAND_LINE $JPDA_OPTS $MULE_OPTS
######################################################################
else
echo "$APP_LONG_NAME is already running."
exit 1
fi
}
我无法升级到更新版本的 Mule。我需要找到一种方法来修改此脚本,以便在使用 bin/mule debug
调用时简单地等待调试器。我已经对其进行了足够的修改以进入我定义的这个 debug
函数,它基本上是他们自己的 console
函数的副本,用于在控制台模式下启动。我似乎无法弄清楚如何将我的调试选项传递给 JVM。有什么想法吗?
documentation 之后的参数 -debug
出现在 3.4.x:
./mule -debug
试一试。