バックグラウンドプロセスを起動し、ターミナルはコマンドラインに戻る前にLF/CRを待ちます。

バックグラウンドプロセスを起動し、ターミナルはコマンドラインに戻る前にLF/CRを待ちます。

バックグラウンドで実行しようとしている小さな C コードがあります。 でプログラムを起動すると&、top または ps でプロセスを見つけることができ、ファイルにパイプするか で実行すると、ターミナルまたはその他の場所に予想される I/O 表示が表示されますnohup

問題は次の通りです。アプリを起動してすぐにコマンド ラインに制御を戻すのではなく、ターミナルは Enter キーを押すまで (または上矢印を使用してコマンド履歴のスクロールを開始するまで) 待機して、コマンド ラインを再度表示するようです。アプリをバックグラウンドで起動して、Enter キーを再度押さずにコマンド ラインに再度アクセスすることは可能ですか? 、、などのさまざまな組み合わせを試しましたが、nohupうまくdisownいき2>&1ませんでした。

答え1

アプリを起動するとすぐに制御がdoesシェルに戻ります。これは、矢印キーで履歴にアクセスできることからもわかります。何らかの理由で、シェルはリターン キーを押すまでプロンプトを出力しません。Enter( ls) を押す前にコマンドを入力することで、これを確認できます。その結果が画面に表示されるはずです。

関連情報