以下命令在外壳上可以正常工作
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
评估为空字符串,应该给我一个数字。为什么是这样?在外壳中能正常工作吗?
答案 0 :(得分:1)
您的cmd_array
是错误的,您仅发送两个参数,主机名和命令字符串,应该为:
cmd_array = ["ssh", "hostname", 'pgrep -fn "java -cp /strbase/apps/App"']