ออกจาก Python OS

Xxk Cak Python Os



โมดูลระบบปฏิบัติการของ Python มีเครื่องมือมากมายสำหรับการส่งสัญญาณด้วยระบบปฏิบัติการ โมดูลนี้นำเสนอวิธีการแบบแยกส่วนในการใช้คุณลักษณะนี้ขึ้นอยู่กับระบบปฏิบัติการ มีการใช้วิธีการต่างๆ ในภาษาโปรแกรม Python และ 'Python os exit' เป็นหนึ่งในนั้น เมื่อใช้ฟังก์ชันนี้ เราสามารถยุติกระบวนการ Python ด้วยสถานะเฉพาะโดยไม่ต้องเรียกใช้ตัวจัดการการทำความสะอาดหรือการล้างบัฟเฟอร์ ตัวอย่างเช่น การเรียกระบบ 'os fork()' ซึ่งโดยปกติจะใช้ฟังก์ชันนี้ในกระบวนการลูก

ฟังก์ชันของคอมพิวเตอร์สามารถยุติการทำงานได้โดยการเริ่มการเรียก exit system บนระบบปฏิบัติการของคอมพิวเตอร์หลายเครื่อง ในระบบมัลติเธรด ทางออกมักจะเป็นสัญลักษณ์ของการหยุดทำงานของเธรด ระบบปฏิบัติการจะดึงทรัพยากรซึ่งรวมถึงไฟล์และหน่วยความจำสำหรับการจัดการทรัพยากร แต่ถ้าเราพูดถึงวิธีมาตรฐานในการออก มันอาจจะเป็นวิธี “sys.exit(n)”







ไวยากรณ์

ไวยากรณ์ของวิธีการออกของ Python os ระบุไว้ด้านล่าง:




ไวยากรณ์ของเมธอด Python os exit กำหนดสองสิ่ง: ส่วนแรกแสดงถึงสถานะการออกของกระบวนการ และโมดูลนี้จะไม่คืนค่าใดๆ



ตัวอย่าง # 1: การใช้เมธอด “os._exit()” เพื่อออกจากหลายกระบวนการโดยไม่ต้องเรียกตัวจัดการการล้างข้อมูลใดๆ

วิธีออกสามารถดำเนินการได้ในระบบปฏิบัติการใดๆ โดยหลักในระบบปฏิบัติการ 'Windows' หรือ 'Linux' ในตัวอย่างแรก เราจะดูที่กระบวนการหลายกระบวนการที่เกิดขึ้นเป็นกระบวนการหลักและกระบวนการรอง ซึ่งดำเนินการประมวลผลโดยไม่ต้องเรียกใช้ตัวจัดการการล้างข้อมูลในฟังก์ชันหรือโปรแกรม โมดูลนี้จะทำงานได้อย่างมีประสิทธิภาพมากขึ้นในระบบปฏิบัติการ 'Linux' การล้างข้อมูลเธรด 'pop()' ที่มีค่าไม่เป็นศูนย์สำหรับพารามิเตอร์ดำเนินการทำให้ตัวจัดการการทำความสะอาดถูกเรียก ขั้นตอนการล้างข้อมูลทั้งหมดที่ถูกพุชแต่ยังไม่ได้เผยแพร่จะถูกดึงออกจากสแต็คการสุขาภิบาลและดำเนินการตามลำดับการเข้าและออกก่อน (LIFO) เมื่อเธรดหยุดทำงาน แต่ไม่จำเป็นต้องเรียกใช้ในตัวอย่างนี้






ข้อมูลโค้ดสำหรับตัวอย่างแรกของ Python os exit อธิบายไว้ด้านล่าง:

โปรแกรมเริ่มต้นด้วยการนำเข้าไลบรารีของ 'os' เนื่องจากเรากังวลเกี่ยวกับการทำเงื่อนไขและข้อกำหนดเพื่อเชื่อมโยงกับระบบปฏิบัติการของอุปกรณ์ของเรา จากนั้นเราก็สร้าง “PID” และเชื่อมโยง “Python” กับไลบรารี่ “os” ตอนนี้เราใช้คำสั่งแบบมีเงื่อนไขโดยเงื่อนไข “if” คือ “PID มากกว่า 0”



หลังจากนั้น เราใช้ฟังก์ชัน “print()” ซึ่งต้องพิมพ์คำสั่ง “\nProcessing in Parent” โดยที่ “\n” ใช้สำหรับย้ายเคอร์เซอร์ไปยังบรรทัดใหม่ภายในเงื่อนไข “if” ตัวแปร “info” ถูกเตรียมใช้งานจากการเรียก “os.waitpid(pid,0)” โดยที่ “PID” เริ่มต้นจากช่วง “0” การดำเนินการต่อไป เราได้ใช้เงื่อนไข 'if' อีกเงื่อนไขหนึ่งกับ 'os.WIFEXITED()' ซึ่งเราให้คำอธิบายข้อมูลเป็น '1' สำหรับการประมวลผล มันเก็บข้อมูลการประมวลผลไว้ในฟังก์ชันที่ผู้ใช้กำหนดของ “python_code” ซึ่งเก็บคำสั่งพิมพ์ของ “Child Code to be Exit” และให้ค่าเป็น “python_code” ภายในฟังก์ชัน “print()”

ตอนนี้ เรามาถึงเงื่อนไข “อื่น ๆ” ของเรา ซึ่งมีคำสั่งพิมพ์สี่คำสั่ง คำสั่งในฟังก์ชัน 'print()' แรกคือ 'กำลังประมวลผลในลูก' คำสั่งพิมพ์ที่สองคือ “ID of Processing:” และด้วยคำสั่งนั้น จะเก็บค่าของ “os.getpid()” ซึ่งเป็นฟังก์ชันที่มีไฟล์โค้ดของ Python สำหรับการประมวลผลย่อย คำสั่งการพิมพ์ที่สามที่ใช้ที่นี่คือ 'Hey Python!!' และคำสั่งการพิมพ์ที่สี่คือ “Child Processing Exists!” สุดท้าย เราใช้โมดูลหลักของเราเพื่อออกจากการประมวลผลของการดำเนินการโปรแกรมของไฟล์ที่มีอยู่ซึ่งก็คือ “os._exit()” และตำแหน่งที่ตัวแปร “os.EX_OK” ถูกกำหนดโดยไม่ส่งกลับฟังก์ชันใดๆ สำหรับการประมวลผล


เนื่องจากการประมวลผลลูกมีความสำคัญสำหรับการรันก่อนและออกจากโปรแกรมจากการประมวลผลพาเรนต์ เนื่องจากต้องใช้เวลามากกว่า ดังนั้น สแนปช็อตเอาต์พุตจะแสดงคำสั่งการพิมพ์ที่เราให้ไว้ในโค้ดก่อนหน้า แต่ไฟล์ที่เราสร้างขึ้นในระบบจะแสดงรหัสการประมวลผล '78695' ซึ่งเราสามารถเห็นได้ในสแน็ปช็อตล่าสุด จากนั้น การประมวลผลของ parent exit จะเป็น '0' เนื่องจากไม่ผ่านการประมวลผลอย่างละเอียดด้วยซ้ำ เนื่องจากต้องใช้ตัวจัดการ

ตัวอย่าง # 2: การใช้เมธอด “os._exit()” เพื่อออกจากกระบวนการทั่วไปโดยไม่ต้องล้างบัฟเฟอร์

ในตัวอย่างนี้ เราจะดูปรากฏการณ์การออกจากการประมวลผลทั่วไปอย่างง่ายหลังจากเรียกใช้ช่วงเวลาจากการอ่านผ่านระบบ นอกจากนี้ เรายังไม่ใช้ฟลัชชิ่งบัฟเฟอร์ด้วยซ้ำ เนื่องจากไม่จำเป็นสำหรับการประมวลผล ท้ายที่สุดแล้ว “os._exit” จะทำงานได้อย่างมีประสิทธิภาพมากขึ้นสำหรับการออกจากกระบวนการ


ให้เราดูโค้ดที่เรานำเข้าไลบรารี Python “os” โปรแกรมเริ่มต้นด้วย for-loop ซึ่งเราใช้ตัวแปร 'p' เพื่อเก็บข้อมูลบางส่วนและตั้งค่าช่วงเป็น '6' หลังจากนั้น เราใช้เงื่อนไข “if” กับตัวแปร “p” ซึ่งจะทำให้ช่วงทั้งหมดเท่ากับ “4” เนื่องจากระบบประมวลผลเริ่มต้นจากดัชนี '0' ระบบจะรันกระบวนการจาก '0' ถึง '4' ทันทีที่เงื่อนไขตรงกัน ซึ่งก็คือค่า “p” เท่ากับ 4 โปรแกรมจะดำเนินการคำสั่งถัดไป ซึ่งก็คือฟังก์ชัน “print()” และให้หน่วยประมวลผล “exit” ในบรรทัดสุดท้าย เราใช้ฟังก์ชัน “os._exit()” เพื่อออกจากฟังก์ชันหลังจากเริ่มจาก “0” แล้วออกจากการประมวลผล ในตอนท้าย ค่าทั้งหมดที่เก็บไว้ในตัวแปร “p” หลังการประมวลผลจะถูกพิมพ์บนจอแสดงผลเอาต์พุต เนื่องจากเราใช้ฟังก์ชัน “print()” โดยกำหนดตัวแปร “p” ให้กับค่านั้น


จอแสดงผลเอาต์พุตจะแสดงเพียงตัวเลข '0', '1', '2' และ '3' เนื่องจากตัวเลขเหล่านี้เป็นตัวเลขสี่ตัวที่มาถึงหลังจากการประมวลผล และหลังจากนั้น การประมวลผลจะเป็นการออก

ตัวอย่าง #3: การใช้เมธอด “os._exit()” เพื่อออกจากกระบวนการที่ไม่มีอยู่ในบัฟเฟอร์

บางครั้ง เราพยายามที่จะผ่านกระบวนการบางอย่างซึ่งไม่ง่ายสำหรับระบบในการดำเนินการประมวลผลหรือหยุดด้วยเหตุผลใดก็ตาม โดยส่วนใหญ่แล้วเมื่อการประมวลผลนั้นขาดหายไปสำหรับโปรแกรมเฉพาะ เนื่องจากการมีอยู่ของวัสดุ ไลบรารี หรือการจัดสรรไฟล์เฉพาะใดๆ .


ให้เราดูข้อมูลโค้ดของเราที่เราใช้ 'ตัวเลข' เป็นตัวแปรและตั้งค่าเป็นช่วงตั้งแต่ '0' ถึง '7' ตอนนี้ เราใช้เงื่อนไข 'if' โดยที่ 'Numbers' เท่ากับดัชนี '5' จากนั้นเราใช้คำสั่ง 'print()' เพื่อพิมพ์ค่า 'exit' หลังจากนั้น เราใช้โมดูลเฉพาะของ “raise SystemExit” เพื่อออกจากการประมวลผล เช่น “os._exit” และใช้ฟังก์ชัน “print()” อีกครั้งเพื่อแสดงตัวเลขที่จัดเก็บไว้ในตัวแปร “Numbers” หลังจากออกจากกระบวนการ


สแนปชอตเอาต์พุตจะอธิบายอย่างชัดเจนว่าจะไม่แสดงค่า 'ตัวเลข' หลังจากโมดูลการใช้งานการออก เนื่องจากเนื้อหาหลักขาดหายไป เช่น ไลบรารี่และการเริ่มต้น ดังนั้นมันจะส่งคืน 'ว่าง' ในการแสดงผลเอาต์พุตหลังจากประมวลผลโปรแกรมและส่งคืนโดยไม่อ่านค่าใดๆ หรืออาจเป็นไปได้ว่าโปรแกรมไม่ได้ดำเนินการ

บทสรุป

ในบทความนี้ เราได้พูดถึงสามตัวอย่างที่เกี่ยวข้องกับวิธีการออกของ Python os ในตัวอย่างแรก เราใช้โมดูล Python os exit เพื่อออกจากกระบวนการลูกโดยไม่ต้องใช้ตัวจัดการล้างข้อมูลและล้างข้อมูลใดๆ ในตัวอย่างที่สอง เราใช้โมดูล os exit ในการออกจากกระบวนการในโปรแกรมทั่วไปของโค้ดโดยไม่ต้องล้างบัฟเฟอร์ ตัวอย่างที่สามเกี่ยวข้องกับการออกจากกระบวนการที่ขาดหายไปซึ่งปัจจุบันไม่ได้มีอยู่หรือเก็บไว้ในระบบ