web-dev-qa-db-ja.com

`./command.sh&`を実行すると、バックグラウンドタスクが中断されます。どうすれば実行し続けることができますか?

これは私が実行しているものです:

alexandma@ALEXANDMA-1-MBP ./command.sh &
[2] 30374
alexandma@ALEXANDMA-1-MBP
[2]  + suspended (tty output)  ./command.sh

一時停止を開始したくありません。バックグラウンドで実行し続けたいです。これらをループで実行するので、そのように機能するものが必要です。

どうすれば実行し続けることができますか?

7
Matt Alexander

Anthonの説明に詳細を追加します。

書き込みバックグラウンドプロセスが停止されるとは限りません。これは、端末設定tostopによって異なります。

stty tostop
stty -tostop

この設定を切り替えるために使用できます。したがって、バックグラウンドプロセスが「別のプロセスの」ターミナルに書き込むようにしたい場合は、実行を継続できますが、tmuxscreenなどは必要ありません。

11
Hauke Laging

これを行う最も簡単な方法は、次のようにコマンドを実行することです。

 Nohup ./command.sh </dev/null &

SHバリアント(CSHバリアントではない)を使用していて、セッションを終了する場合は、Nohupを含めます。

4
mdpc

screenをインストールします。

画面をインストールしたら。それを実行します : # screen(最初の起動時にウェルカム画面が表示されます)コマンドを実行します:command.sh

プレス Ctrl+a その後 d

サーバーで起動された画面を切り離し、コマンドを実行し続けます。

この画面に戻るには、次のように入力します。

screen -r

2
Maxime D