Jawaban:
Nohup membuat program mengabaikan sinyal HUP, yang memungkinkannya berjalan setelah terminal saat ini ditutup / pengguna keluar. Nohup tidak mengirim program ke latar belakang.
& di akhir perintah terkait dengan kontrol pekerjaan shell, memungkinkan pengguna untuk terus bekerja di sesi shell saat ini.
Biasanya nohup dan & digabungkan untuk meluncurkan program yang berjalan setelah keluar dari pengguna dan memungkinkan untuk terus bekerja pada sesi shell saat ini.
Biasanya saya menggunakan &
ketika saya ingin menjalankan di latar belakang perintah yang tidak akan lama berjalan, atau yang saya tidak akan benar-benar peduli jika program dihentikan jika saya tiba-tiba keluar dari sesi.
xcalc &
rdesktop 1.2.3.4 &
./this_only_takes_a_few_seconds_but_i_want_my_shell_back.py &
Saat bekerja melalui VPN atau koneksi jarak jauh yang cerdik, saya cenderung menggunakan nohup
untuk menjalankan apa pun yang akan berjalan cukup lama. Saat menjalankan impor data besar pada host jarak jauh, misalnya, Anda mungkin ingin menggunakan nohup
untuk memastikan bahwa terputus tidak akan membuat Anda memulai lagi ketika Anda terhubung kembali.
nohup ./do_data_load.py mydatafile.txt &
Ini juga digunakan ketika pengembang tidak melakukan daemonisasi layanan dengan benar, jadi Anda harus menggunakannya nohup
untuk memastikan tidak terbunuh saat Anda keluar.
nohup sillyd &
Jika Anda lupa menggunakan nohup
saat menjalankan sesuatu seperti dua contoh terakhir, Anda dapat menggunakan bash atau zsh bawaan disown
untuk efek yang sama.
$ sillyd &
[1] 12345 # Whoops!
$ disown %1
Cukup jarang digunakan nohup
tanpa &
, karena Anda tidak dapat benar-benar tersambung kembali ke sesi nohup'd jika Anda keluar. Ini cukup banyak menghilangkan kegunaannya untuk perintah interaktif. Dalam kasus di mana Anda memiliki perintah interaktif yang ingin Anda pertahankan selama sesi atau menghindari pemutusan yang rumit, Anda bisa menggunakannya screen
. Daya tembak dari screen
sesi yang sepenuhnya dipersenjatai dan operasional berada di luar cakupan pos ini, jadi Anda harus memeriksanya lebih terinci .
byobu
yang menambahkan beberapa fitur bagus ke layar. Ini tersedia di sebagian besar repo tepat dan dalam repos EPEL untuk Red Hat.
nohup: logout pengguna saat ini, prosesnya tidak akan berhenti
&: dengan simbol ini, tidak akan ada output di terminal saat ini, proses yang berjalan di latar belakang