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. pythonスクリプトを使用して端末コマンドを入力する
- 3. 端末コマンドがPythonで終了するのを待つ
- 4. 端末内でコマンドを実行して端末を使用する方法は?
- 5. AppleScriptで端末にコマンドを送信
- 6. 端末へのコマンドの送信
- 7. 端末コマンドをPythonコードに使用
- 8. 端末からJavaプロセスを自動的に終了する
- 9. SSHと擬似端末経由のsudo
- 10. 開いているpython端末にコマンドを送る
- 11. Pythonを使用してLinux端末で同時プロセスを実行する
- 12. Konsole端末へのコマンドの送信
- 13. Linuxの擬似端末:ある端末から別の端末に送信された文字列を実行する
- 14. 端末が終了しても操作を続ける
- 15. USBキーボードデバイスを使用してラズベリーパイの端末コマンドをトリガー
- 16. Mac OS X端末でコマンドをctrlとして使用する
- 17. PHPを使用して複数の端末にGCM通知を送信する
- 18. 端末のメールコマンドを使用して電子メールを送信し、送信元アドレスを指定します
- 19. 端末のエスケープ(終了)
- 20. javaで ">"を使用して端末コマンドを実行
- 21. Pythonスクリプトを使用して端末を操作する
- 22. C#アプリケーションからラズベリーパイに端末コマンドを送信する方法
- 23. アンドロイド端末エミュレータにアンドロイドアプリからコマンドを送信するには?
- 24. Styletronを使用して擬似クラスで擬似要素をスタイルする方法
- 25. Mac端末でR端末コマンドを使用できますか?
- 26. Perlを使用してプロセスを終了するためのポーリング
- 27. VBScriptを使用してタイムアウト後にプロセスを終了する
- 28. 通常ProcessBuilderを使用してプロセスを終了する方法
- 29. 端末でpythonを実行し、端末が閉じたときに終了しないでください
- 30. Pythonを使用してLinuxマシンにログインし、2つの端末を開いてコマンドを実行する
この種のために設計されたpexpectを調べたいと思うかもしれません:http://www.noah.org/wiki/pexpect –
私はptyしか利用できません。 – Emilio
私はちょうど試してみました。ドキュメントから私は関数が引数のリストを受け取らないように出力と対話するためのものです –