นี่คือความเข้าใจของฉันเกี่ยวกับการใช้ของ&
, disown
และnohup
:
<command>
: วิ่งกระบวนการภายในปัจจุบันของสถานีbash
เช่นในเบื้องหน้า (คือกระบวนการที่ระบุว่าเป็นbash
งานเบื้องหน้าและstdin
,stdout
และstderr
ยังคงผูกไว้กับขั้ว ); ไม่ภูมิคุ้มกัน hangups ;<command> &
: วิ่งกระบวนการภายในปัจจุบันของสถานีbash
เช่นในพื้นหลัง (คือกระบวนการที่ระบุว่าเป็นbash
งานพื้นหลังและstdin
,stdout
และstderr
ยังคงผูกไว้กับขั้ว ); ไม่ภูมิคุ้มกัน hangups ;<command> & disown
: วิ่งกระบวนการภายในปัจจุบันของสถานีbash
เช่นในพื้นหลังแต่กระบวนการนี้ออกจากbash
รายการของงาน ' (คือกระบวนการที่ไม่ได้ระบุว่าเป็นbash
เบื้องหน้างานพื้นหลัง / และstdin
,stdout
และstderr
ยังคงผูกพันไปยังสถานี ); ภูมิคุ้มกันต่อ hangups ;nohup <command> & disown
: วิ่งกระบวนการภายในปัจจุบันของสถานีbash
เช่นในพื้นหลังแต่กระบวนการนี้ออกจากbash
รายการของงาน ' (คือกระบวนการที่ไม่ได้ระบุว่าเป็นbash
เบื้องหน้างานพื้นหลัง / และstdin
,stdout
และstderr
จะไม่ได้ยังคงผูกพันไปยังสถานี ) ; ภูมิคุ้มกันต่อ hangups ;
ดังนั้นนอกเหนือจากnohup <command> & disown
การปิดกั้นstdin
และเปลี่ยนเส้นทางstdout
และstderr
ไปโดยปริยายก็ดูเหมือนว่าผมชอบที่จะสามารถได้รับการพิจารณาโดยสิ้นเชิงเทียบเท่ากับnohup.out
<command> & disown
ถูกต้องทั้งหมดข้างต้นหรือไม่ ความเข้าใจผิดใด ๆ
bash
เช่นจะไม่ฆ่ากระบวนการ