python ptyモジュールを使用して、stdin(ptyモジュールが望む)として関数を使用して端末エミュレータにいくつかのコマンドを送信し、強制終了します。私はpython pty擬似端末プロセスを使用してコマンドを送信して終了する
3
A
答えて
2
まず、pty
モジュールを使用すると、Pythonがで実行されているターミナルエミュレータと通信することはできません。ありがとうござい
import pty
cmnds = ['exit\n', 'ls -al\n']
# Command to send. I try exiting as last command, but it doesn't works.
def r(fd):
if cmnds:
cmnds.pop()
# It seems is not executing sent commands ('ls -al\n')
else:
# Can i quit here? Can i return EOF?
pass
pty.spawn('/bin/sh', r)
のようなものを考えました。その代わり、それはPythonが
こと Aにふりをすることができます端末エミュレータ。
ソースコードpty.spawn()
を見ると、生成されたプロセスが実行中にPythonのstdinとstdoutを引き継ぐように設計されているように見えますが、これはあなたが望むものではありません。
あなただけの、シェルを起動それにコマンドを送信し、出力を読みたい場合は、実行したいだけで一つのコマンドがありますならば、あなたはおそらく、特に(Pythonのsubprocess
モジュールをしたい、subprocess.Popen
クラスの.communicate()
方法でしょう助けてください)。
パイプの代わりにptyでサブプロセスを実行する必要がある場合は、os.openpty()
を使用してマスターとスレーブのファイル記述子を割り当てることができます。スレーブファイルディスクリプタをサブプロセスのstdinとstdoutとして使用し、マスタファイルディスクリプタにコマンドを書き込んで、そこから応答を読み込みます。
関連する問題
- 1. Pythonスクリプトを使ってLinux端末を終了するには?
- 2. Konsole端末へのコマンドの送信
- 3. Mac OS X端末でコマンドをctrlとして使用する
- 4. Linuxの擬似端末:ある端末から別の端末に送信された文字列を実行する
- 5. 端末のエスケープ(終了)
- 6. javaで ">"を使用して端末コマンドを実行
- 7. Mac端末でR端末コマンドを使用できますか?
- 8. 端末でpythonを実行し、端末が閉じたときに終了しないでください
- 9. 通常ProcessBuilderを使用してプロセスを終了する方法
- 10. Perlを使用してプロセスを終了するためのポーリング
- 11. Pythonを使用して端末でオーディオベルを生成
- 12. Abaqus nogui pythonインターフェイスを使用して端末に印刷
- 13. 端末/シェル/ automator/applescriptコマンドを使用してMacでBluetoothをオフにする
- 14. 端末のMacアプリケーションをプログラムで終了しますか?
- 15. プロセスを終了して終了するまでの最良の方法
- 16. Pythonで実行中のコマンドを終了しています
- 17. mpi4pyを使用して複数の送信コマンドを受信
- 18. spawnvを使って作成したプロセスを終了する
- 19. Android Appを使用してRaspberry PIにコマンドを送信する
- 20. ServiceStackを使用してコマンドを送信する方法は?
- 21. ATコマンドを使用してグループSMSを送信する
- 22. JavaとATコマンドを使用してSMSを送信する
- 23. Pythonスレッドプール - プロセスは決して終了しません
- 24. プロセスが終了したときにコマンドを実行します。
- 25. pythonプロセスが終了したときにサブプロセスを終了しますか?
- 26. Urban Airshipを使用して1台の端末にプッシュ通知を送信する方法は?
- 27. Microsoft HISを使用して3270端末エミュレータにF1キーを送信する方法
- 28. EAGLViewを終了してすべてのプロセスを停止する
- 29. 端末を使用してAzureSQLに.csvをアップロードする
- 30. 端末を使用して.jarファイルを作成する方法
この種のために設計されたpexpectを調べたいと思うかもしれません:http://www.noah.org/wiki/pexpect –
私はptyしか利用できません。 – Emilio
私はちょうど試してみました。ドキュメントから私は関数が引数のリストを受け取らないように出力と対話するためのものです –