時には、プロセスを開始して忘れたい場合があります。次のようにコマンドラインから始める:
redshift
端末を閉じることができないか、プロセスが終了します。プロセスを終了せずに端末を閉じることができるようにコマンドを実行できますか?
答え1
次の2つのうちの1つが機能するはずです。
$ nohup redshift &
または
$ redshift &
$ disown
仕組みの詳細については、下記をご覧ください。
nohup、disown、&の違い(コメントも必ずお読みください)
答え2
あなたのプログラムすでに実行中Ctrl-Z
を使用して一時停止し、バックグラウンドにドラッグしてbg
からdisown
次のように使用できます。
$ sleep 1000
^Z
[1]+ Stopped sleep 1000
$ bg
$ disown
$ exit
答え3
@Steven Dが素晴らしい答えを投稿しました。しかし、私はこれがもう少し明確になると思いました。
端末がシャットダウンしたときにプロセスが終了するのは、開始したプロセスが端末の子プロセスであるためです。端末が閉じると、これらのサブプロセスも終了します。pstree
たとえば、kate &
Konsoleで実行している場合は、次のようにプロセスツリーを表示できます。
init-+
├─konsole─┬─bash─┬─kate───2*[{kate}]
│ │ └─pstree
│ └─2*[{konsole}]
終了時にプロセスを分離するには、kate
次のようにコマンドと一緒に使用します。konsole
konsole
nohup
nohup kate &
閉じると、konsole
次のようpstree
に表示されます。
init-+
|-kate---2*[{kate}]
そしてkate
生き残るだろう。 :)
代替方法はscreen
//を使用することですtmux
。byobu
これにより、端末に関係なくシェルが実行され続けます。
答え4
私は好む:
(applicationName &)
たとえば、
linux@linux-desktop:~$ (chromium-browser &)
コマンドを入力するときは、必ず括弧を使用してください。