0

このルビーの「システム」は私に出力を与えます。irb:

system("sudo airodump-ng -w sidney wlan0")

Airodump-ngは、Airocrack-ngパッケージからのものです。

しかし、ルビーの「システム」は私にstdoutを与えるべきではありません。問題は、出力のない「sh」プロセスが作成されているということです。しかし、「sh」プロセスには子プロセスがあり、端末にまったく表示したくない出力が得られます。

質問の2番目の部分、スレッドを使用して、そのサブプロセスのpidを取得するにはどうすればよいですか?また、rubyを使用してシェルコマンドを呼び出す別の方法(およびその子プロセスの出力を表示しない)はどうすればよいですか?

4

2 に答える 2

2

出力を気にしない場合は、ゴミ箱に捨ててください。

system("sudo airodump-ng -w sidney wlan0 >/dev/null 2>&1")

子プロセスは親のファイル記述子を継承すると思います。

于 2012-11-29T13:26:52.537 に答える
1

使用する

out = `sudo airodump-ng -w sidney wlan0`

代わりに、出力は画面に表示されませんが、out代わりに保存されます

于 2012-11-29T08:57:53.440 に答える