ในคู่มือนี้ เราจะนำเสนอแนวคิดที่เรียบง่ายแต่มีความสำคัญใน การจัดการกระบวนการในระบบ Linuxซึ่งเป็นวิธีแยกกระบวนการออกจากขั้วควบคุมโดยสมบูรณ์
เมื่อ กระบวนการลินุกซ์ เชื่อมโยงกับเทอร์มินัล ปัญหาสองประการอาจเกิดขึ้น:
เพื่อจัดการกับปัญหาทั้งสองนี้ คุณต้องแยกกระบวนการทั้งหมดออกจากเทอร์มินัลควบคุม ก่อนที่เราจะย้ายไปแก้ปัญหาจริง ๆ ให้เราอธิบายสั้น ๆ เกี่ยวกับวิธีเรียกใช้กระบวนการในพื้นหลังใน Linux
สารบัญ
หากกระบวนการอยู่ในการดำเนินการอยู่แล้ว เช่น ตัวอย่างคำสั่ง tar ด้านล่างเพียงกด Ctrl+Z
เพื่อหยุด จากนั้นป้อนคำสั่ง บีจี
เพื่อดำเนินการต่อในพื้นหลังเป็นงาน
คุณสามารถดูงานเบื้องหลังทั้งหมดได้โดยพิมพ์ งาน
. อย่างไรก็ตามมัน สเตดิน, แย่, และ สตเดอร์ ยังคงเข้าร่วมกับเทอร์มินัล
$tar -czf home.tar.gz. $ bg $ งาน.
คุณสามารถเรียกใช้กระบวนการ Linux ในพื้นหลังโดยใช้เครื่องหมายแอมเปอร์แซนด์ &
เข้าสู่ระบบ.
$tar -czf home.tar.gz. & $ งาน.
ลองดูตัวอย่างด้านล่างแม้ว่า คำสั่งน้ำมันดิน เริ่มทำงานเป็นพื้นหลัง ข้อความแสดงข้อผิดพลาดยังคงถูกส่งไปยังเทอร์มินัล หมายความว่ากระบวนการยังคงเชื่อมต่อกับเทอร์มินัลควบคุม
$tar -czf home.tar.gz. & $ งานtar: ./.config/etcher: ไม่สามารถเปิด: ปฏิเสธการอนุญาต
เราจะใช้ ปฏิเสธ คำสั่ง ซึ่งใช้หลังจากดำเนินการกระบวนการและวางในพื้นหลัง การทำงานของมันคือการลบงานเชลล์ออกจากงานรายการที่ใช้งานของเชลล์ ดังนั้นคุณจะไม่ใช้ ฉ
, บีจี
คำสั่งในงานนั้นๆ อีกต่อไป
นอกจากนี้ เมื่อคุณปิดเทอร์มินัลการควบคุมหรือออกจากระบบ งานจะไม่ค้างหรือส่ง ซิกอัพ ให้กับงานเด็ก
มาดูตัวอย่างด้านล่างของการใช้ ปฏิเสธ ทุบตีฟังก์ชั่นในตัว
$ sudo rsync เทมเพลต/* /var/www/html/files/ & $ งาน. $ ปฏิเสธ -h %1 $ งาน.
คุณยังสามารถใช้ ไม่อัพ
คำสั่งซึ่งยังช่วยให้กระบวนการทำงานในพื้นหลังต่อไปเมื่อผู้ใช้ออกจากเชลล์
$ nohup tar -czf iso.tar.gz เทมเพลต/* & $ งาน.
คุณอาจชอบ:
ดังนั้น หากต้องการแยกกระบวนการออกจากเทอร์มินัลการควบคุมอย่างสมบูรณ์ ให้ใช้รูปแบบคำสั่งด้านล่าง ซึ่งจะมีประสิทธิภาพมากกว่าสำหรับอินเทอร์เฟซผู้ใช้แบบกราฟิก (กุย) แอปพลิเคชัน เช่น Firefox:
$ไฟร์ฟอกซ์ /dev/null &
ในลินุกซ์ /dev/null คือ ไฟล์อุปกรณ์พิเศษ ที่เขียน (กำจัด) ข้อมูลทั้งหมดที่เขียนลงไป ในคำสั่งด้านบน อินพุตถูกอ่านจาก และเอาต์พุตถูกส่งไปยัง /dev/null.
คุณอาจชอบ:
กล่าวโดยสรุป หากกระบวนการเชื่อมต่อกับเทอร์มินัลควบคุม ในฐานะผู้ใช้ คุณจะเห็นบรรทัดเอาต์พุตหลายบรรทัดของข้อมูลกระบวนการรวมถึงข้อความแสดงข้อผิดพลาดบนเทอร์มินัลของคุณ อีกครั้ง เมื่อคุณปิดเทอร์มินัลการควบคุม กระบวนการและกระบวนการย่อยของคุณจะถูกยกเลิก
ที่สำคัญ สำหรับคำถามหรือความคิดเห็นเกี่ยวกับเรื่องนี้ โปรดติดต่อเราโดยใช้แบบฟอร์มความคิดเห็นด้านล่าง