如何解决IBM i
有没有人在 IBM i 上安装/运行过 ActiveMQ 并且可以帮我解决这个问题?
进程没有运行或给出 ZipException。
我从 ActiveMQ 5.16.2 (Apr 28,2021) 下载了 ActiveMQ 5.16.2 - Unix/Linux/Cygwin 包 用于在 IBMi V7R3 上安装,并按照 Version 5 Getting Started -“Unix 安装程序”部分中提到的官方安装步骤进行操作。
这类似于 - Installing activeMQ on IBM i5 V5R4
中提到的在 IBMi 上安装在运行命令 ./bin/activemq start 时,进程开始但结束时并未实际运行 ActiveMq。 它在控制台上显示以下错误 -
./bin/activemq: 001-0019 Error found searching for command whoami. No such path or directory.
同样,命令 ./bin/activemq status 返回 ActiveMQ not running .
当运行命令 ./bin/activemq console 时,进程开始但给出相同的 whoami 错误并以 ZipException 结束。
在 Windows 上,我已经能够成功安装和运行。
有没有人在 IBMi 上安装过 ActiveMQ 并且可以帮我解决这个问题?
解决方法
您缺少命令
whoami
这不是内置的 shell,因此您需要将该软件包添加到您的安装中。
h/t 到 @nfgl 以获取指向 IBM OSS rpm 存储库的指针。如果您检查他们的 src.rpm,您会看到他们修补了 activemq 脚本。值得回顾
SRC RPM 调用此依赖项:coreutils-gnu
bin/activemq 的 IBM iSeries 补丁:
$ more activemq-activemq.patch
--- a/bin/activemq 2020-03-30 18:50:50.000000000 +0000
+++ b/bin/activemq 2020-03-30 18:57:03.000000000 +0000
@@ -336,10 +336,14 @@
-Dactivemq.data=\"${ACTIVEMQ_DATA}\" \
$ACTIVEMQ_CYGWIN \
-jar \"${ACTIVEMQ_HOME}/bin/activemq.jar\" $COMMANDLINE_ARGS >> $ACTIVEMQ_OUT 2>&1 &
- RET=\"\$?\"; APID=\"\$!\";
- echo \$APID > "${PIDFILE}";
- echo \"INFO: pidfile created : '${PIDFILE}' (pid '\$APID')\";exit \$RET" $DOIT_POSTFIX
- RET="$?"
+ exit \"\$?\"" $DOIT_POSTFIX
+ RET="$?"
+ sleep 5
+ OS400_PID=`ps | grep -iE 'java|jFromPASE|jvmStartPase|qp0zspwp' | grep -v '\spgm-' | grep -vE '^\s+1\s' | tail -n 1 | awk '{print $1}'`
+ rm -f $PIDFILE
+ qsh -c "/usr/bin/touch -C 1208 $PIDFILE"
+ echo $OS400_PID > $PIDFILE
+ echo "INFO: pidfile created : '$PIDFILE' (pid '$OS400_PID')"
elif [ -n "$TASK_TODO" ] && [ "$TASK_TODO" = "stop" ];then
SPID="`cat "${PIDFILE}"`"
$EXEC_OPTION $DOIT_PREFIX "\"$JAVACMD\" $ACTIVEMQ_OPTS $ACTIVEMQ_DEBUG_OPTS \
@@ -384,7 +388,7 @@
return 2
fi
ACTIVEMQ_PID="`cat ${ACTIVEMQ_PIDFILE}`"
- RET="`ps -p "${ACTIVEMQ_PID}"|grep java`"
+ RET=`/QOpenSys/usr/bin/ps -p ${ACTIVEMQ_PID}|grep -iE 'java|jFromPASE|jvmStartPase'`
if [ -n "$RET" ];then
return 0;
else
@@ -403,7 +407,7 @@
return 2
fi
THEPID=`cat ${PID_STOP}`
- RET=`ps -p $THEPID|grep java`
+ RET=`/QOpenSys/usr/bin/ps -p ${ACTIVEMQ_PID}|grep -iE 'java|jFromPASE|jvmStartPase'`
if [ -n "$RET" ];then
return 0;
else
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。