ターミナルプログラムで実行されているコンテンツをバックグラウンドで送信する

ターミナルプログラムで実行されているコンテンツをバックグラウンドで送信する

端末で実行するスクリプトがあり、いくつかの出力が印刷されます。たとえば、キーを押さずに(そしてスクリプトを変更せずに)5秒後にバックグラウンドで送信したいとします。 Bashスクリプトのようにスクリプトを起動してしばらくスリープしてから、実行中のアプリケーションをバックグラウンドで送信します。いったんバックグラウンドに入ると、出力に気になりません。

UPD:うまくいかないもの:

  • nohup
  • afterスクリプトの使い方&- 出力がまだ端末に送信されている間、すぐにバックグラウンドで送信されます(これは私が避けたいものです)

ベストアンサー1

他のプロセスの出力を他の場所にリダイレクトできる非ハッキング方法はありません[1]。ㅏ)プロセスをフォアグラウンドに戻す意図はありません。雨)catプログラムの実行中に他のプロセス(軽量)も実行できます。これにより、次のことができます。

{ your_program ... & } | (trap : INT; cat & sleep 5; kill $!; cat >/dev/null &)

プログラムのstderrとstdoutをyour_program 2>&1

[1] 可能なハッキングアプローチは、デバッガを接続し、その内部で出力をリダイレクトすることです。

おすすめ記事