python subprocess.Popen隐藏真实的“显示名称”

时间:2012-07-09 11:10:57

标签: python popen

我想在python中执行子进程,子进程需要一个参数来指定密码。默认情况下,当我的子进程运行时,每个可以登录此计算机的人都可以使用ps实用程序获取密码。

我知道Popen有一个__executable__参数,它可以隐藏真实的程序名,但不能隐藏子进程的密码参数。

如何隐藏密码?

PS:我在linux上运行。

2 个答案:

答案 0 :(得分:1)

我认为你无法为子进程执行,但是有一个库来自子进程:http://code.google.com/p/py-setproctitle/

该方法特定于每个OS;有些系统根本不支持。如果可能,通过其他方式(例如通过stdin管道)为子进程提供密码。

答案 1 :(得分:1)

subprocess不会公开API来执行此操作。我建议使用环境变量将密码传递给命令:

subprocess.check_call('command --password="$PASSWORD"', shell=True,
                      env=dict(os.environ, PASSWORD=password))