Ini adalah pemahaman saya tentang penggunaan &
, disown
dan nohup
:
<command>
: menjalankan proses dalambash
instance Terminal saat ini , di latar depan (yaitu proses terdaftar sebagaibash
pekerjaan latar depan danstdin
,stdout
danstderr
masih terikat ke terminal ); tidak kebal terhadap hangup ;<command> &
: menjalankan proses dalambash
instance Terminal saat ini , di latar belakang (yaitu proses terdaftar sebagaibash
pekerjaan latar belakang danstdin
,stdout
danstderr
masih terikat ke terminal ); tidak kebal terhadap hangup ;<command> & disown
: menjalankan proses dalambash
instance Terminal saat ini , di latar belakang , tetapi proses terlepas dari daftarbash
'pekerjaan' (yaitu proses tidak terdaftar sebagai pekerjaanbash
latar depan / latar belakang danstdin
,stdout
danstderr
masih terikat ke terminal ); kebal terhadap hangup ;nohup <command> & disown
: Menjalankan proses dalam Terminal saat inibash
misalnya, di latar belakang , tetapi proses ini terlepas daribash
daftar 's pekerjaan' (yaitu proses ini tidak terdaftar sebagaibash
foreground / latar belakang pekerjaan danstdin
,stdout
danstderr
yang tidak masih terikat ke terminal ) ; kebal terhadap hangup ;
Jadi, selain dari nohup <command> & disown
memblokir stdin
dan mengarahkan stdout
dan stderr
untuk nohup.out
secara default, tampaknya bagi saya seperti itu dapat dianggap benar-benar setara dengan <command> & disown
.
Apakah semua di atas benar? Adakah kesalahpahaman?
bash
instance orang tua tidak akan mematikan proses