gpt4 book ai didi

linux - 从命令行在 CentOS 32 位上将 ActiveMQ 5.6.0 配置为 UNIX 服务

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:38:25 26 4
gpt4 key购买 nike

我目前可以使用 xbean 启动 ActiveMQ,但 ActiveMQ 未在启动时作为 UNIX 服务启动

/home/username/activemq/bin/activemq start xbean:/home/username/activemq/conf/my-activemq.xml

控制台提示我运行安装程序,所以我

/home/username/activemq/bin/activemq setup etc/default/activemq

如果我使用的是 xbean,我很困惑为什么控制台说要创建一个配置文件

然后我创建了 producer.php 和 consumer.php

cd /etc/init.d/

cat > producer.php

<?php
$queue1 = '/queue/queue1';
try {$stomp = new Stomp('tcp://localhost:61613');}
catch(StompException $e) {die('Connection failed: ' . $e->getMessage());}
for($i=1;$i<10;$i++){$msg1 = "queue one my data".$i;
$stomp->send($queue1, $msg1, array('persistent' => 'true'));}
unset($stomp);
?>

cat > consumer.php

<?php
$queue1 = '/queue/queue1';
try {$stomp = new Stomp('tcp://localhost:61613');}
catch(StompException $e) {die('Connection failed: ' . $e->getMessage());}
$stomp->subscribe($queue1);
while(1){$frame = $stomp->readFrame();
if ( $frame != null) {echo $frame->body; //process your message
echo "\n";
$stomp->ack($frame);}} unset($stomp);
?>

用nohup启动consumer.php

nohup php consumer.php > consumer.log 2>&1 &

它把这个返回给控制台

[1] 32707

创建启动文件

cat > activemqstart.sh

#!/bin/bash
export JAVA_HOME=/usr
/usr/share/php/activemq/bin/activemq &

创建停止文件

cat > activemqstop.sh

#!/bin/bash
export JAVA_HOME=/usr
/usr/share/php/activemq/bin/activemq-admin stop

服务配置脚本

cat > activemq

#!/bin/bash
#
# activemq Starts ActiveMQ.
#
# chkconfig: 345 88 12
# description: ActiveMQ is a JMS Messaging Queue Server.
### BEGIN INIT INFO
# Provides: $activemq
### END INIT INFO

# Source function library.
. /etc/init.d/functions

[ -f /etc/init.d/activemqstart.sh ] || exit 0
[ -f /etc/init.d/activemqstop.sh ] || exit 0

RETVAL=0

umask 077

start() {
echo -n $"Starting ActiveMQ: "
daemon /etc/init.d/activemqstart.sh
echo
return $RETVAL
}
stop() {
echo -n $"Shutting down ActiveMQ: "
daemon su -c /etc/init.d/activemqstop.sh activemq
echo
return $RETVAL
}
restart() {
stop
start
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart|reload)
restart
;;
*)
echo $"Usage: $0 {start|stop|restart}"
exit 1
esac

exit $?

然后我设置权限

chmod +x /etc/init.d/activemqstart.sh
chmod +x /etc/init.d/activemqstop.sh
chmod +x /etc/init.d/activemq
/sbin/chkconfig --add activemq
/sbin/chkconfig activemq on

清除actviemq.log

cat /dev/null > /home/username/activemq/data/activemq.log

重新启动

reboot

并检查了日志,但它是空的,ActiveMQ 没有运行

more /home/username/activemq/data/activemq.log

最佳答案

你能在本地试试这个命令吗

daemon /etc/init.d/activemqstart.sh

我尝试了相同的操作,但上面的命令对我不起作用,因为守护进程不可用。

如果是这样,请尝试下面,而不是上面。

/etc/init.d/activemqstart.sh

关于linux - 从命令行在 CentOS 32 位上将 ActiveMQ 5.6.0 配置为 UNIX 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12125313/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com