gpt4 book ai didi

python-3.x - 在 Python3 中运行 linux shell 命令

转载 作者:行者123 更新时间:2023-12-05 09:35:06 25 4
gpt4 key购买 nike

我正在创建一个服务管理器来管理诸如 apache、tomcat 等服务。我可以通过 srvmanage.sh enable 在 shell 中启用/禁用服务。我想用 python 脚本来做到这一点。怎么做?

service_info = ServiceDB.query.filter_by(service_id=service_id).first()
service_name = service_info.service
subprocess.run(['/home/service_manager/bin/srvmanage.sh enable', service_name],shell=True)

这段代码有什么问题?

最佳答案

我猜想如果您想在 Python 中执行此操作,您可能需要更多功能。如果不是@programandoconro 答案就可以了。但是,您也可以使用 subprocess 模块 来获得更多功能。它将允许您运行带有参数的命令并返回一个 CompletedProcess 实例。例如

import subprocess

# call to shell script
process = subprocess.run(['/path/to/script', options/variables], capture_output=True, text=True)

您可以通过捕获 stderr/stdout 和返回码来添加额外的功能。例如:

# call to shell script
process = subprocess.run(['/path/to/script', options/variables], capture_output=True, text=True)

# return code of 0 test case. Successful run should return 0
if process.returncode != 0:
print('There was a problem')
exit(1)

子流程的文档是 here

关于python-3.x - 在 Python3 中运行 linux shell 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66095345/

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