Linuxのジョブ制御に関する助けが必要です。Linuxのジョブ制御 - 端末に制御を戻したい
この
$ ./test.elf &
私のプログラム/プロセスはバックグラウンド・プロセスとして実行されているように私は、ターミナルの外に私のプログラムを実行します。
しばらくして(私は5秒と言う)、私はfg
と入力してプロセスをフォアグラウンドに入れました。
しばらくすると(私のプログラムはバックグラウンドプロセスに戻り、バックグラウンドプロセスとしてbashプログラムを置いて、ターミナルの使用を継続できるようにします)。
- 私pprogramをstartng、私は
tcgetpgrp
機能を使用して、フォアグラウンドプロセス(bashのプログラム)のグループプロセスIDを取得します:ここでは、私が何をすべきかです。
- 私はプロセスがフォアグラウンドプロセスであるのを待っています。私は
tcgetpgrp(STDIN__FILENO)
を使用します。 - 私はそれから5秒待つ
tcsetpgrp
を使って、上記のポイント1のプロセスをフォアグラウンドに入れました。
問題は、自分のプロセスがバックグラウンドとフォアグラウンドのbashプログラムに置かれていることがわかりましたが、端末にコマンドを入力できません。 bashは "戻る"ではなく、まだ待っている、または眠っています。
私はCtrlキー押すことができます知っている - Z、その後bg
を私は後、Ctrlのでことを使用したくない - Zが押されている私のプロセスが停止され、それがために良いではありません私は "リアルタイム"制御アプリケーションを実行しています。だから私はプログラムを止めたり一時停止させたりせずに "即座に"端末に戻りたいと思っています。
申し訳ありませんが、私の問題の説明が混乱しているようです。
コメントがありますか?
? – mouviciel
はい、それは起こります:私は私のプログラムをテストし、デバッグするために専用の端末を使用していますが(フォアグラウンド中)、終了したらプログラムを止めずにCtrl-Zを押してから端末を終了し、 – joeks
ターミナルを終了すると、そのターミナルに制御を戻すにはどうすればいいですか? – mouviciel