Linux では、これによりユーザーのパスワードが正常に変更されます。
subprocess.Popen('passwd', shell=True, stdin=subprocess.PIPE, stdout=None)
subprocess.communicate(input='abc\nabc')
しかし、solaris では、呼び出した後に次のことがわかりました。
subprocess.Popen('iscsiadm modify -C iqn.xxx-xx.xxx', shell=True, stdin=subprocess.PIPE, stdout=None)
「Enter Secret」プロンプトが引き続き表示され、パスワードが要求されます。そして、パスワードを入力する以外に何もできません。現在のシェルはまだその iscsiadm プロセスに属しています。
パスワードを求めるこの iscsiadm プロンプトをラップして、静かに実行する必要があります。しかし、今ここに何か問題があるようです。
編集:端末からの入力のみを受け入れるように実装されたプログラムがいくつかあるのはなぜですか。上記の例のように、linux passwd と solaris iscsiadm の違いは何ですか。