Ctrl + c ในกระบวนการย่อยกำลังฆ่ากระบวนการที่ไม่มีการอัปโหลดก่อนหน้านี้ในสคริปต์
ฉันไม่รู้ว่าสิ่งนี้เป็นของ SO หรือไม่ (เพราะเป็นข้อผิดพลาดในการเขียนโค้ด) แต่คิดว่าพวกคุณจะมีความรู้มากขึ้นเกี่ยวกับรายละเอียดปลีกย่อยของซอฟต์แวร์ที่ใช้ (อาจเป็นเพราะคุณอาจพิจารณา U&L) นี่คือสคริปต์โค้ดขั้นต่ำ (ดูการแก้ไขสคริปต์แบบเต็มมีเหตุผลที่ฉันทำเช่นนี้) #/bin/bash nohup {SERVERCOMMAND} > currentOutput.log 2>&1 & less +F currentOutput.log สิ่งที่พยายามทำคือเรียกใช้เซิร์ฟเวอร์ในพื้นหลังซึ่งส่งออกไปยังไฟล์บันทึก จากนั้นผมล็อกไฟล์ที่ใช้follow less +Fในการออกจากสิ่งนี้คุณต้องกดctrl+ cก่อนจึงจะสามารถกดQได้ จะเกิดอะไรขึ้นเมื่อฉันctrl+ cภายในlessคำสั่ง (หยุดtailing) มันจะฆ่าเซิร์ฟเวอร์ที่เริ่มต้นด้วยnohupที่ด้านบน! ไม่มีอะไรได้รับผลกระทบ ฉันสามารถshift+ fเพื่อเริ่มปรับแต่งบันทึกอีกครั้ง (ซึ่งไม่ได้รับข้อมูลใหม่เนื่องจากเซิร์ฟเวอร์ถูกฆ่าตาย) และถ้าฉันกดQส่วนที่เหลือของสคริปต์ดำเนินการตามปกติ คุณรู้ไหมว่าทำไมสิ่งนี้ถึงเกิดขึ้น ฉันจะหลีกเลี่ยง / ใช้อย่างอื่นได้อย่างไร PS โปรแกรมเซิร์ฟเวอร์อาจกำลังฟัง a ^Cซึ่งอาจเป็นปัญหา มีบางอย่างที่ฉันสามารถทำได้เพื่อหยุดสิ่งนั้น เช่นเมื่อฉันเพิ่งรัน{SERVERCOMMAND}ด้วยตัวเอง (ในลักษณะบล็อก) ฉันสามารถกดctrl+ cซึ่งไม่ฆ่ามันทันที มันพิมพ์Received ^C signal, shutting …