![](/img/trans.png)
[英]python: how to run a program with a command line call (that takes a user's keystroke as input) from within another program?
[英]how to run command line in linux from another user
我需要从戴着红色帽子的python程序(python2.7)执行bash脚本,而此bash脚本必须以splunk用户身份从另一个用户帐户运行。
在Linux中,我将首先切换到splunk用户su - splunk
,然后以splunk用户su - splunk
键入命令./mybashFile
这是我尝试过的:
import subprocess
cmd1=subprocess.Popen(["su","-","splunk"],shell=True,stdout=subprocess.PIPE)
cmd2=subprocess.Popen(["./path/myBashFile.sh"],shell=True,stdin=cmd1.stdout,stdout=subprocess.PIPE)
cmd2.stdout
我仍然无法以splunk用户身份运行此bash文件。 该命令不能传递给另一个帐户。
cmd1
和cmd2
是两个不同的过程,彼此之间没有影响。 如果您想使用su
路线,则需要通过以下方式调用shell脚本:
...["su","-","splunk", "-c", "./path/myBashFile.sh"]...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.