UNIX命令在python子进程中不起作用

时间:2018-11-14 17:01:38

标签: python unix subprocess

以下命令在外壳上可以正常工作

ssh hostname 'pgrep -fn "java -cp /strbase/apps/App"'

但是不在python子进程中,我的数组如下

cmd_array = ['ssh', 'hostname', "'pgrep", '-fn', '"java', '-cp', '/strbase/apps/App"\'']

但是我没有输出。

我在下面尝试:

process = subprocess.Popen(
cmd_array, stdout=subprocess.PIPE, stderr=subprocess.PIPE)

stdout, stderr = process.communicate()

但是

stdout

评估为空字符串,应该给我一个数字。为什么是这样?在外壳中能正常工作吗?

1 个答案:

答案 0 :(得分:1)

您的cmd_array是错误的,您仅发送两个参数,主机名和命令字符串,应该为:

cmd_array = ["ssh", "hostname", 'pgrep -fn "java -cp /strbase/apps/App"']