Windows系统开发Python项目,通过docker在Windows系统中将Python打包为centos系统的可执行文件。
将可执行文件部署到麒麟V10环境中,systemctl的启动命令可以正常调用,但是rabbitmqctl的命令调用后,没有生效。
import subprocess
def command():
result = subprocess.Popen("source /etc/profile; /usr/local/rabbitmq/sbin/rabbitmq-server -detached", shell=True, stdout=subprocess.PIPE)
logger.info("========shell执行结果 ========= {}".format(result.stdout.read()))
在Python项目中通过输出语句,查看执行是否出错
输出结果为空,执行语句增加; echo ‘success’,明确该语句已执行
“source /etc/profile; /usr/local/rabbitmq/sbin/rabbitmq-server -detached; echo ‘success’”
import os
def rabbitmq_start():
command = "source /etc/profile; /usr/local/rabbitmq/sbin/rabbitmq-server -detached; echo 'success'"
values = os.popen(command).read()
logger.info("========rabbitmq 启动========= {}".format(values))
import subprocess
import logging
command="export CONTROL=/usr/local/rabbitmq/sbin/rabbitmqctl; export HOME=/usr/local/rabbitmq/ ;export ERL_HOME=/usr/local/erlang; /usr/local/rabbitmq/sbin/rabbitmq-server -detached"
subprocess.Popen(command, shell=True, stdout=subprocess.DEVNULL, close_fds=True)
将未编译的Python项目部署到系统中
执行可执行文件
此次问题推测为centos内核与麒麟V10内核不一致导致。