Ubuntu 22下ActiveMQ Artemis 2.32.0启动后自动停止求助
解决ActiveMQ Artemis 2.32.0在Ubuntu 22上systemd启动后自动停止的问题
问题根源
artemis-service start 命令会将ActiveMQ Artemis作为后台进程启动,但systemd需要管理前台运行的进程。当启动脚本执行完成退出后,systemd会判定服务已结束,进而触发停止流程。
修改systemd服务文件
将服务文件调整为以下内容,让broker以前台模式运行,适配systemd的进程管理逻辑:
[Unit] Description=ActiveMQ Artemis Message Broker After=network.target [Service] User=artemis Group=artemis WorkingDirectory=/var/lib/artemis-broker ExecStart=/var/lib/artemis-broker/bin/artemis run ExecStop=/var/lib/artemis-broker/bin/artemis stop Restart=on-failure RestartSec=3s KillMode=mixed TimeoutStopSec=60 [Install] WantedBy=multi-user.target
关键修改说明:
- 新增
[Unit]段:定义服务描述与依赖,确保网络就绪后再启动broker - 替换
ExecStart为artemis run:让broker前台运行,systemd可持续监控进程状态 - 添加
WorkingDirectory:指定broker工作目录,避免路径相关的执行异常 - 配置
KillMode=mixed:停止服务时先尝试优雅关闭,超时后强制终止进程 - 设置
TimeoutStopSec:给优雅关闭流程预留足够时间,防止因超时被强制终止
应用修改并重启服务
- 将修改后的配置保存到
/etc/systemd/system/artemis.service路径下 - 重新加载systemd配置:
sudo systemctl daemon-reload - 重启服务:
sudo systemctl restart artemis.service - 检查服务运行状态:
sudo systemctl status artemis.service
验证运行日志
通过实时日志确认服务是否正常启动:
journalctl -u artemis.service -f
内容的提问来源于stack exchange,提问作者Mario Tuan
相关产品推荐
相关产品推荐

