无法向登录的shell发送命令
最初,我编写了一个Python脚本。它能够发送这样的命令
subprocess.run(['kubectl', 'config', 'get-context'], shell=True)但是,当它到达子shell时,在本例中是bash,该命令直到我退出该shell时才会运行,并且它会显示类似于找不到该命令的内容。
然后,我尝试使用模块"sh“完成此操作,但也没有成功。
我想也许使用Python是有问题的,也意识到我的最终目标是使用不同的shell (cypher- shell ),因此立即跳到使用bash作为父shell。在那里我有一句话,有时成功,有时不成功
kubectl run -it --rm cypher-shell --image=gcr.io/cloud-marketplace/neo4j-public/causal-cluster-k8s:3.4 --restart=Never --namespace=default --command -- ./bin/cypher-shell -u neo4j -p "password" -a "domain.name"但是,即使它成功登录,它也会挂起,直到我手动退出,然后它运行下一个命令
注意:我看到了这个,所以,它可能不是一个子shell?Run shell command from child shell
发布于 2019-01-07 01:33:34
我不能说我确切地知道您在做什么,但是如果我正确地理解了您的目标,您希望Python程序在脚本继续运行的同时继续记录日志吗?问题是记录器会继续运行并阻止您的程序。我处理这个问题的方法是将记录器作为后台进程运行。
对于bash,这将是./script.sh &,它将使其运行,而不会阻止程序的其余部分运行。
希望这能给你一个想法!祝好运。
https://stackoverflow.com/questions/54063502
复制相似问题