สถานการณ์ที่เป็นไปได้: คุณต้องการติดตั้งใหม่ทั้งหมด คุณกู้คืนข้อมูลด้วยตนเองและคุณมักจะติดตั้งซอฟต์แวร์เดียวกันหลังการติดตั้งระบบปฏิบัติการ คุณมีคำสั่งแบบยาวเพื่อติดตั้งแพ็กเกจ APT ทั้งหมดทีละแพ็กเกจ คุณป้อนคำสั่ง คุณรอให้มันเสร็จสิ้น ทีมของคุณไม่ได้แข็งแกร่งที่สุดในโลกและต้องทนทุกข์ทรมาน มีวิธีแก้ปัญหานี้หรือไม่? ความจริงก็คือเราทำได้ เรียกใช้กระบวนการเทอร์มินัลในพื้นหลัง และในบทความนี้เราจะแสดงให้คุณเห็นว่า
สถานการณ์ข้างต้นเป็นสิ่งที่เกิดขึ้นกับฉันเมื่อใช้ Ubuntu ฉันติดตั้งซอฟต์แวร์จำนวนมากและถอนการติดตั้งอีกตัวหนึ่งเพื่อปล่อยไว้ตามที่ฉันชอบ แต่นั่นไม่จำเป็นสำหรับฉันใน Kubuntu เพราะมีเกือบทุกอย่างที่ฉันต้องการนอกกรอบ ไม่ว่าจะเป็นอะไรก็มี วิธีหลีกเลี่ยงการเปิดหน้าต่างเทอร์มินัล ซึ่งสามารถรบกวนหรือเราสามารถปิดและหยุดกระบวนการได้โดยไม่ได้ตั้งใจ นี่คือสิ่งที่ไม่สามารถเกิดขึ้นกับเราได้หากเราทำงานอยู่เบื้องหลัง
bg ใช้กระบวนการจากเทอร์มินัลไปยังพื้นหลัง
En บทความนี้ เราอธิบายว่าเหตุใดเราจึงไม่สามารถคัดลอกและวางด้วยทางลัดตลอดอายุการใช้งานในเทอร์มินัล ทางลัดเหล่านั้นใช้เพื่อดำเนินการอื่น ๆ เช่น Ctrl + C เพื่อหยุดกระบวนการ ในโปรแกรมอื่น ๆ อีกมากมาย Ctrl + Z ใช้เพื่อเลิกทำการเปลี่ยนแปลงล่าสุด แต่ก็ใช้ไม่ได้ในเทอร์มินัลเช่นกัน สิ่งที่ทำในเทอร์มินัลคือหยุดกระบวนการชั่วคราวและเพิ่มลงใน "งาน" ตัวอย่างที่เร็วที่สุดที่เราสามารถดูวิธีการทำงานคือการอัปเดตแพ็คเกจ APT (sudo apt update) และกด Ctrl + Z เราจะเห็นว่าเทอร์มินัลระบุว่า "[1] + Stopped" ซึ่งหมายความว่าเราได้หยุดกระบวนการหมายเลข 1 และเพิ่มลงในรายการงานสำหรับเทอร์มินัลนั้น ถ้าเราออกไปงานก็ไปกับเขา ในการรีสตาร์ทเราจะใช้ fg เพื่อให้มันอยู่เบื้องหน้าหรือ bg เพื่อให้ยังคงอยู่ในพื้นหลัง ในทั้งสองกรณีเราจะยังคงเห็นกระบวนการในเทอร์มินัลและจะหยุดหากเราปิดหน้าต่าง
เมื่อกระบวนการเทอร์มินัลหรือหลายรายการถูกหยุดชั่วคราวเราจะเห็นสิ่งที่เรารอดำเนินการโดยใช้ไฟล์ คำสั่ง ตำแหน่งงาน ที่เราได้กล่าวไว้ข้างต้น หากมีมากกว่าหนึ่งกระบวนการหยุดเราจะเพิ่มหมายเลขเข้าไป fg o bg เพื่อดำเนินการต่อเฉพาะ ทางเลือก bg (background = background) ไม่อนุญาตให้เราหยุดกระบวนการอีกครั้ง หากเราต้องการให้กระบวนการทำงานโดยตรงในพื้นหลังเราจะเพิ่ม "&" โดยไม่มีเครื่องหมายอัญประกาศ
ปฏิเสธ อนุญาตให้ทำงานต่อเมื่อออกจากเทอร์มินัล
หากเราต้องการให้กระบวนการเทอร์มินัลดำเนินการต่อในพื้นหลังหลังจากปิดหน้าต่างเราจะใช้คำสั่ง ปฏิเสธ. ในการดำเนินการนี้ขั้นตอนในการปฏิบัติตามจะมีดังนี้:
- เราเริ่มกระบวนการ
- เราหยุดด้วย Ctrl + Z.
- เราเขียน ตำแหน่งงาน เพื่อดูหมายเลขกระบวนการ
- เราเขียนคำสั่งต่อไปนี้โดยที่ตัวเลขหลังเปอร์เซ็นต์เกิดขึ้นพร้อมกับกระบวนการที่เราต้องการรันในเบื้องหลังหลังจากออกจากเทอร์มินัล:
disown -h %1
- เราเริ่มกระบวนการใหม่ด้วยคำสั่งต่อไปนี้ (โดยใช้ 1 ถ้านั่นคือกระบวนการที่เราต้องการเริ่มต้นใหม่):
bg 1
- หากต้องการเราจะปิดเทอร์มินัล
วิธีที่ดีที่สุดในการตรวจสอบว่าได้ผลคือการแตกไฟล์ขนาดใหญ่ ในภาพหน้าจอก่อนหน้านี้คุณจะเห็นว่าฉันกำลังคลายการบีบอัดไฟล์ 7z จากเทอร์มินัลอย่างไร อาจใช้เวลาหลายนาทีทั้งนี้ขึ้นอยู่กับขนาดของไฟล์ หากคุณทำตามที่เราได้อธิบายไว้ข้างต้นคุณสามารถไปยังเส้นทางที่เราแจ้งให้คุณเปิดเครื่องรูด (โดยค่าเริ่มต้น / HOME) คลิกขวาเข้าถึงคุณสมบัติและตรวจสอบว่าขนาดเพิ่มขึ้นทีละเล็กทีละน้อย หากไม่เป็นเช่นนั้นเราจะปิดหน้าต่างคุณสมบัติและเข้าถึงอีกครั้ง ปัญหา? ไม่มีทางที่จะทราบได้อย่างแม่นยำเมื่อกระบวนการเสร็จสิ้น. ในกรณีของการคลายซิปไฟล์จะถือว่าเสร็จสมบูรณ์เมื่อไม่มีการเพิ่มขนาดอีกต่อไป ไม่ว่าในกรณีใดเราสามารถตรวจสอบได้ว่ายังคงใช้งานได้หลังจากปิดเทอร์มินัล
ฉันไม่ต้องการที่จะจบบทความนี้โดยไม่พูดอะไรบางอย่าง: แม้ว่า ทุกอย่างที่อธิบายที่นี่ปลอดภัยฉันขอแนะนำให้คุณตรวจสอบก่อนว่าทุกอย่างทำงานได้ดี อย่างถูกต้องในระบบปฏิบัติการของคุณด้วยสิ่งที่ไม่สำคัญมากนัก ตัวอย่างเช่นดาวน์โหลดไฟล์ 7z และแตกไฟล์ หากคุณเห็นว่าทุกอย่างทำงานได้ตามที่เราได้อธิบายไว้ในโพสต์นี้ให้ดำเนินการต่ออย่างอื่น การรันกระบวนการเทอร์มินัลในเบื้องหลังจะมีประโยชน์หรือไม่