Selain itu, nohup
Anda dapat meluncurkan proses di latar belakang menggunakan "&" dan subkulit:
Sufiks perintah dengan & dan bungkus dalam tanda kurung
$ (thecommand args &)
Katakanlah proses Anda mendapatkan pid 1922:
$ ps -f
UID PID PPID C STIME TTY TIME CMD
usr 11473 2643 0 15:07 pts/1 00:00:00 bash
usr 11922 1 0 15:11 pts/1 00:00:00 thecommand
Terlihat bahwa itu tidak terikat dari proses shell 11473 yang merupakan induk aslinya. Jadi, jika Anda keluar atau membunuh shell saat ini (11473), proses 11922 terus berjalan, dan itu akan terputus dari Poin.
Cobalah untuk keluar dari shell, dan masukkan shell baru. Meskipun, shell ini terhubung ke Poin yang sama, Anda dapat melihat prosesnya sekarang tanpa Poin:
$ ps -fp 11922
UID PID PPID C STIME TTY TIME CMD
usr 11922 1 0 15:11 ? 00:00:00 thecommand
Saya tidak tahu bagaimana namanya atau didokumentasikan di Posix, tapi saya menggunakan cara ini sejak 1990 di bsh, ksh dan sekarang di bash.
Terakhir, Anda dapat menggunakan bg
perintah shell builtin:
Cukup luncurkan program Anda dan jika Anda memutuskan untuk menjeda, atau berencana untuk menyimpannya di latar belakang, ketik CTRL + Z:
$ thecommand
^Z
[1] Stopped thecommand
Sekarang biarkan terus berjalan di latar:
$ bg
[1]+ thecommand &
Jika Anda melihat ke proses info, ini belum memiliki proses induk:
$ ps -f
UID PID PPID C STIME TTY TIME CMD
usr 12046 2643 0 15:18 pts/6 00:00:00 bash
usr 12571 12046 0 16:00 pts/6 00:00:00 thecommand
usr 12601 12046 0 16:04 pts/6 00:00:00 ps -f
Jadi, keluar dari proses saat ini. Proses yang berjalan di latar belakang tidak terikat dari induk aslinya dan tetap berjalan di latar belakang:
$ exit
Login lagi dan lihat info proses:
$ ps -f 12571
UID PID PPID C STIME TTY TIME CMD
usr 12571 1 0 16:00 ? 00:00:00 thecommand
disown
perintah. Ini dikembalikan: bash: peringatan: menghapus pekerjaan yang dihentikan 1 dengan grup proses 24876. Sekarang pekerjaan saya terdaftarps -all
tetapi tampaknya tidak berfungsi (penggunaan CPU adalah 0%)