【发布时间】:2016-08-30 14:01:42
【问题描述】:
我正在尝试使用 python 自动化部署过程。在部署中,我首先执行“dzdo su - sysid”,然后执行部署过程。但我无法在 python 中处理这部分。我在shell中做了类似的事情,我使用了以下代码,
/bin/bash
psh su - sysid << EOF
. /users/home/sysid/.bashrc
./deployment.sh
EOF
这很好地处理了 deployment.sh 的执行。它执行 sudo,然后使用 sysid id 执行脚本。 我正在尝试使用 python 做类似的事情,但我无法在 python 中找到
我正在使用 subprocess.Popen 执行 dzdo 部分,它执行 dzdo,但是当我尝试执行下一个命令时,例如说“ls -l”,然后这个命令将不会使用 sysid 执行,相反,我必须退出 sysid 会话,一旦我退出,它将在我的主目录中执行“ls -l”,这是没有的利用。有人可以帮我解决这个问题吗?
还有一件事,在这种情况下,我不会调用任何 deployment.sh,而是会调用诸如 cp、rm、mkdir 等命令。
【问题讨论】:
标签: python linux shell subprocess