Biarkan kami mempertimbangkan Anda telah membuka gediteditor teks dari terminal dan bekerja di sana. Jika Anda menutup terminal sebelum menutup gedit, gedit juga akan ditutup segera setelah menutup terminal. Jadi apa yang terjadi di sini? The geditberjalan sebagai proses anak di bawah terminal. Ketika Anda menutup terminal, sinyal menggantung ( SIGHUP) dikirim ke proses yang membunuh proses anak.
Di sisi lain, jika Anda ingin proses anak Anda (di sini gedit) tetap berjalan bahkan setelah menutup terminal induk, Anda ingin proses Anda kebal terhadap sinyal hangup. Sehingga menutup terminal jangan menutup proses anak. nohupmelakukan pekerjaan ini dengan tepat.
nohuptidak memutuskan perintah dari terminal , itu membuat skrip Anda mengabaikan SIGHUP, dan mengalihkan stdout / stderr ke file nohup.out, sehingga perintah dapat terus berjalan di latar belakang setelah Anda logout. Jika Anda menutup shell / terminal atau logout, perintah Anda bukan lagi anak dari shell itu. Itu milik proses init. Jika Anda mencari di dalam, pstreeAnda akan melihatnya sekarang dimiliki oleh proses 1 (init). Itu tidak dapat dibawa kembali ke latar depan karena latar depan tidak ada lagi.
disownadalah alternatif yang lebih baiknohup. Latar belakang perintah dengancommand &atauCtrl-Z, lalu gunakandisownuntuk melepaskannya dari shell.