プログラムを開始した後、コンソールを閉じた後もプログラムを実行し続ける[複製]


8

重複の可能性:
プロセスをターミナルから完全に切り離すにはどうすればよいですか?

リモートのUnixコンピュータのUnixコンソールでプログラムを実行しています。私は(ばかげて)を使用してそれを実行しなかったのでnohup &、ローカルコンソールを閉じる必要があります。

ローカルコンソールを閉じた後、リモートで実行し続ける方法はありますか?

回答:


12

あなたのシェルがそうなら、あなたはbashそれらを使うことができますdisown。Ctrl-Zでプロセスを一時停止し、disown -hSIGHUPを受信しないようにします。


素晴らしいソリューション。それはうまくいった:-)
3

3
bg気になるだけです:プロセスが一時停止しているので、最終的にこれに続くのではないですか?それともdisown -h再開しますか?
アルジャン

プロセスが内部で実行されている場合、これは機能しscreenますか?xterm代わりに、常連でプロセスを実行し続けたいと思います。

IIRCは、これを非表示にすると、どの端末にも接続されなくなります
ダグラスリーダー20/03/16

5

Solaris 9では、を使用nohup -p <pid>して、実行中のプロセスをnohup できます。 ここに実装の興味深い説明があります。これが他のUnicesに実装されているかどうかはわかりません。


nohup:無効なオプション-p gentoo、ubuntu、またはfedora(私がこれを試したunix)では動作しませんが、それでもなお感謝します:-) Solarisにそれが備わっていることを知って良かったです。
3

2

Ctrl-Zでプロセスを一時停止しbg、プログラムをバックグラウンドで実行し、完了するまで実行を続けます。


問題は、コンソールを閉じると、バックグラウンドプロセスも停止することです。nohupのように、プロセスをコンソールから切り離すものが必要ですが、プロセスの開始後:-)
Thrawn

そして、「nohup bg&」も機能しないと思います:-(
Thrawn

1
私は自分のシステムの1つで試してみましたが、ログアウトしても(du / >> tempテストプログラムとして使用しただけで)正常に動作し続けましたが、プログラムまたはその結果を失いたくない場合は、ためらうことを理解しています。
Matrix Mole

2

ログアウトする前にプログラムを停止して再起動する余裕がある場合は、プログラムを停止してscreenから再起動します。これは、UNIXホストへのリモート接続を使用するすべての人にとって必須です。


1
ここでの主な問題は、彼がプログラムを止めたくないということです。
Gnoupi

1
ええ、私はプログラムが停止されないようにしたいと思います:-)
スローン

私はそのような状況の将来の使用のためにscreenを強くお勧めします(私はほとんどの場合、sehll oを持っているすべてのシステムでscreenセッションを実行しています)。
Matrix Mole

1
数年後、私は自分が画面を使用していないのはばかだったことに気づきました:-)
Thrawn
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.