所以我一直在尝试使用Fabric运行以下功能。我的版本是Fabric 1.14.0和Paramiko 2.4.1
def test1():
with settings(
host_string = <My VM IP>,
warn_only=True
):
run("service arangodb3.cluster start")
当我在VM上运行此“ service arangodb3.cluster start”命令时,得到以下输出。
root@arangodbnode1:~# service arangodb3.cluster start
* Starting arango database server arangod
vm.max_map_count = 2500000
...done.
root@arangodbnode1:~# 2018-09-05T08:43:26Z |INFO| Starting arangodb
version 0.13.1, build 8b4a219 component=arangodb
2018-09-05T08:43:26Z |INFO| Relaunching service with id 'e917a38d' on:8528... component=arangodb
2018-09-05T08:43:26Z |INFO| Using storage engine 'rocksdb'component=arangodb
2018-09-05T08:43:26Z |INFO| ArangoDB Starter listening on 0.0.0.0:8528 (:8528) component=arangodb
2018-09-05T08:43:26Z |INFO| Looking for a running instance of agent on port 8531 component=arangodb
2018-09-05T08:43:26Z |INFO| Starting agent on port 8531 component=arangodb
2018-09-05T08:43:27Z |INFO| Looking for a running instance of dbserver on port 8530 component=arangodb
2018-09-05T08:43:27Z |INFO| Starting dbserver on port 8530 component=arangodb
2018-09-05T08:43:28Z |INFO| Looking for a running instance of coordinator on port 8529 component=arangodb
2018-09-05T08:43:28Z |INFO| Starting coordinator on port 8529 component=arangodb
2018-09-05T08:43:29Z |INFO| agent up and running (version 3.3.14). component=arangodb
2018-09-05T08:43:36Z |INFO| Failed to register upgrade plan changed callback component=arangodb error="context deadline exceeded"
但是当我从python代码运行以上函数时,得到以下输出。
run: service arangodb3.cluster start
out: * Starting arango database server arangod
out: vm.max_map_count = 2500000
out: ...done.
out:
它刚刚退出那里。不像我从VM本身运行命令时收到的先前输出。我想要完整的输出,或者至少要确保它完全在后台运行。
我不熟悉使用结构库,也不熟悉Stackoverflow上的问题,对问题的框架不当感到抱歉。
我已经从Fabric文档中阅读了很多内容,但是找不到解决方案。有人可以解释如何获得完整的输出,还是可以确保它已完成运行。预先感谢。