web-dev-qa-db-ja.com

PuTTYまたはOTHER-PuTTYを終了した後もコマンドを実行し続けます

実行する必要のあるコマンドがいくつかあります。これらのコマンドは、インターフェイスを終了した後も継続的に実行する必要があります。 Linux GUIにアクセスできるときは、次のようなことを実行します。

cd /home/testuser/Scripts*
xterm -hold -T "Background_Script1" -e  "service1-start.sh" &
sleep 10
xterm -hold -T "Background_Script2" -e "service2-start.sh" &

どんな助けでも大歓迎です。

13
user3331952

試してみてください

Nohup Background_ScriptX&

Nohupは、端末が閉じられたときにプロセスが終了しないことを保証します。 &記号は、プロセスをバックグラウンドにプッシュします。

これがお役に立てば幸いです。

33
Eamonn Travers

後日出力を読みたい場合は、screenを使用できます。

screen -d -m my_command

これにより、後で接続できる分離された端末が提供されます(screen -r)stdout/stderr出力を読み取ります。

20
Mark

Nohupコマンドが使用できない場合の別のオプションは、 disown コマンドを使用することです。

まず、ターミナルでjobsを実行して、バックグラウンドタスクを表示できます。そこから求人番号を取得できます。

disown %[job number]を実行するだけで、プロセスは現在のターミナルから切り離され、ログアウトしても存続します。

補足:正しい質問をしていることを確認してください。サンプルで示唆しているように実際のサービスを実行している場合は、選択したOSでデーモンを作成する方法を調べたいと思うかもしれません。これは、再起動後もプロセスが実行されていることを確認し、他のサービスとの一貫性を高めるためです。

お役に立てれば。

6
user391035

screenが言及されているので、他のターミナルマルチプレクサがあります。私はtmuxがとても好きです。たとえばこの他のスーパーユーザーの質問、 tmux vs screen 比較のため。

3
1k5

setsid Setidはバックグラウンドプログラムでも機能し、ターミナル/ sshセッションが切断された後も実行を継続できるようにします。

次のように使用します。

setsid program-to-background

マンページ: http://man7.org/linux/man-pages/man2/setsid.2.html

0
nulldev