นี่คือความเข้าใจของฉันเกี่ยวกับการใช้ของ&, 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เช่นจะไม่ฆ่ากระบวนการ