无法将命令发送到我登录的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"
但是即使成功登录,它也会挂起,直到我手动退出,然后运行下一个命令
注意:我看到了,所以,也许这不是子弹吗? Run shell command from child shell
答案 0 :(得分:0)
我不能说我确切地知道您在做什么,但是如果我正确地理解了您的目标,您希望Python程序在脚本继续运行的同时继续记录吗?问题在于记录器将继续运行并保留您的程序。我要处理的方法是将记录器作为后台进程运行。
使用bash时,将是./script.sh &
,这将使其运行而不会阻止程序的其余部分运行。
希望这会给您一个想法!祝你好运。