> 技术文档 > RocketMQ 做成服务启动

RocketMQ 做成服务启动

1、为了安全起见,最好为 RocketMQ 创建一个专用用户和组。可以使用以下命令:[root@localhost /]# sudo groupadd rocketmq[root@localhost /]# sudo useradd -r -g rocketmq -s /bin/false rocketmq2、把文件改个目录准备:复制目录要不目录太长了。-r递归复制,-a 保留权限[root@localhost local]# cp -r -a /usr/local/software/rocketmq-all-5.3.1-source-release/distribution/target/rocketmq-5.3.1/rocketmq-5.3.1 /usr/local/rocketmq-5.3.13、设置文件权限,即改变目录的所有者和权限将 RocketMQ 的文件权限设置为新创建的用户和组:sudo chown -R rocketmq:rocketmq /usr/local/rocketmq-5.3.1sudo chmod -R 755 /usr/local/rocketmq-5.3.14、nameserver的服务配置vim /usr/lib/systemd/system/mqnamesrv.service[Unit]Description=RocketMQ 5.3.1 - nameserverAfter=network.target[Service]Type=forkingUser=rocketmqEnvironment=\"JAVA_HOME=/usr/local/software/jdk-21.0.5\"Environment=\"PATH=$JAVA_HOME/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin\"ExecStart=/usr/local/rocketmq-5.3.1/bin/mqnamesrvExecStop=/usr/local/rocketmq-5.3.1/bin/mqshutdown namesrvRestart=always[Install]WantedBy=multi-user.target下面的是给jdk创建软连接,创建过的可以不用创建了ln -sf /usr/local/software/jdk-21.0.5 /usr/bin/java5. 重新加载 systemd重新加载 systemd 配置以使新服务生效:sudo systemctl daemon-reload6. 启动 RocketMQ 服务启动 Name Server 和 Broker 服务:sudo systemctl start mqnamesrvsudo systemctl start mqbroker7. 设置开机自启设置 RocketMQ Name Server 和 Broker 在系统启动时自启:sudo systemctl enable mqnamesrvsudo systemctl enable mqbroker2 broker配置服务,/usr/local/software/myshell是mqbroker.sh脚本存放的位置。vim /usr/lib/systemd/system/mqbroker.service[Unit]Description=RocketMQ 5.3.1 - Broker+ProxyAfter=network-online.target [Service]Environment=JAVA_HOME=/usr/local/software/jdk1.8.0_421User=rootGroup=rootType=simpleExecStart=/usr/local/rocketmq-5.3.1/bin/mqbroker -c conf/broker.conf -n 192.168.150.50:9876 --enable-proxyExecStop=/usr/local/rocketmq-5.3.1/bin/mqshutdown broker[Install]WantedBy=multi-user.target6 开启自启和启动echo $JAVA_HOMEsystemctl daemon-reloadsystemctl enable mqnamesrv.servicesystemctl start mqnamesrv.servicesystemctl status mqnamesrv.servicejournalctl -xe查看具体的细节journalctl -u mqnamesrv.service -bsystemctl enable mqbroker.service systemctl start mqbroker.service 如果提示:ERROR: Please set the JAVA_HOME variable in your environment, We need java(x64)! !![root@localhost local]# java -versionjava version \"1.8.0_421\"Java(TM) SE Runtime Environment (build 1.8.0_421-b09)7 如果启动失败看日志查看系统日志:使用 journalctl -xe 或 journalctl -u mqnamesrv.service1. sudo chown -R rocketmq:rocketmq /opt/rocketmqsudo:以超级用户权限运行命令,确保有足够的权限进行更改。chown:改变文件或目录的所有者。-R:递归地应用此操作到所有子目录和文件。rocketmq:rocketmq:将文件的所有者设置为用户 rocketmq,并将所属组设置为 rocketmq 组。/opt/rocketmq:指定要更改权限的目录。这个命令的作用是将 /opt/rocketmq 目录及其所有子文件和子目录的所有者和组更改为 rocketmq,确保该用户拥有对这些文件的完全访问权限。2. sudo chmod -R 755 /opt/rocketmqchmod:改变文件或目录的权限。-R:递归地应用此操作到所有子目录和文件。755:这是一个权限设置,其中:7:表示所有者(用户)具有读取、写入和执行权限(4+2+1)。5:表示组用户具有读取和执行权限(4+1)。5:表示其他用户也具有读取和执行权限(4+1)。这个命令的作用是将 /opt/rocketmq 目录及其所有子文件和子目录的权限设置为 755,允许所有者可以读、写和执行,而组用户和其他用户只能读和执行。