3

簡単な質問: ターミナルを実行せずにバックグラウンドでスクリプトを実行する方法はありますか?

詳細と背景: アプリの .log ファイルを読み取り、そこから情報を引き出し、ログ内の情報から情報と統計を提供するアプリがありました。アプリの更新により、.log ファイルの書き込み方法が変更され、情報が削除され、予測できない方法でログが複製されます。

ログと連携するように設計されたアプリは、そのような変更をチェックするようにコーディングされていませんでした。そのため、ログの変更後に情報を収集しようとすると、機能しなくなります。

「ハック」は、tail -f を実行するように考案されており、アプリを 16 進数で新しいファイルを指すようにします。(「ハック」が機能します)ユーザーが中断しないように、テールをバックグラウンドで実行したいと思います...それを壊します...

- (おそらく) 必要以上に長い説明で申し訳ありません。しかし、より詳細な質問をすれば、正確な答えが得られると思いました。

前もって感謝します!

~\セフ

4

1 に答える 1

6

答えは、シェルを終了した後にプロセスに再接続できるようにする必要があるかどうかによって異なります。プロセスが非対話的であり、そのままにしておくことができる場合は、「nohup プログラム &」でうまくいくはずです。ただし、シェルを閉じた後は、プログラムと対話し続けることはできません。

対話型プログラムの場合は、screen または他の端末マルチプレクサーのいずれかを使用することをお勧めします。新しいシェルを提供する「screen」を開始します。この中で、通常の方法で、「nano myfile.txt」と言って、必要なプログラムを開始します。

シェルを閉じたいが、プログラムを実行したままにしたい場合は、 Ca d ('Detach') を押して画面から切り離します。実行し続けますが、バックグラウンドで実行され、ログアウトしても実行され続けます。

後で screen に再接続する場合は、新しいシェルを開いて「screen -r」(再接続) と入力します。

Screen を使用すると、単一のターミナル ウィンドウで複数の異なるシェルを実行することもでき、全体的に優れたツールです。見てみな。

于 2012-05-09T11:33:04.867 に答える