คำถามติดแท็ก process-management

ใช้แท็กนี้เมื่อหัวข้อเกี่ยวกับการจัดการกระบวนการระบบ คำสั่งที่ใช้สำหรับสิ่งนี้เป็นเช่น ps และ kill -9 xxxx และบริการ xyz start | stop | restart และ htop มักใช้ร่วมกับการจัดการหน่วยความจำ

9
เมื่อใดที่ฉันไม่ควรฆ่ากระบวนการ -9
ฉันมักจะลังเลที่จะวิ่งkill -9แต่ฉันเห็นผู้ดูแลคนอื่นทำเกือบเป็นประจำ ฉันคิดว่าอาจมีพื้นกลางที่เหมาะสมดังนั้น: ควรkill -9ใช้เมื่อใดและเพราะเหตุใด เมื่อใดและเพราะเหตุใด สิ่งที่ควรลองก่อนทำ การดีบักกระบวนการ "หยุด" ชนิดใดที่อาจทำให้เกิดปัญหาเพิ่มเติม

3
ลินุกซ์“ ฆ่า” กระบวนการอย่างไร?
บ่อยครั้งที่ทำให้ฉันงงงันแม้ว่าฉันจะทำงานกับคอมพิวเตอร์เป็นเวลาหลายสิบปีและลีนุกซ์เป็นเวลาสิบปี แต่ฉันก็ยังใช้งานฟังก์ชั่นส่วนใหญ่ของระบบปฏิบัติการได้เหมือนกล่องดำ วันนี้ฉันคิดเกี่ยวกับkillคำสั่งและในขณะที่ฉันใช้มันหลายครั้งต่อวัน (ทั้งใน "ปกติ" และ-9รสชาติ) ฉันต้องยอมรับว่าฉันไม่รู้ว่ามันใช้งานได้อย่างไรอยู่เบื้องหลัง จากมุมมองของฉันหากกระบวนการทำงานเป็น "หยุด" ฉันเรียกkillใช้ PID ของมันและจากนั้นจะไม่ทำงานอีกต่อไป มายากล! เกิดอะไรขึ้นจริง ๆ หน้าพูดคุยเกี่ยวกับ "สัญญาณ" แต่แน่นอนว่าเป็นเพียงนามธรรม การส่งkill -9ไปยังกระบวนการไม่ต้องการความร่วมมือของกระบวนการ (เช่นการจัดการสัญญาณ) มันแค่ฆ่ามันออกไป Linux หยุดกระบวนการไม่ให้ใช้เวลา CPU ต่อไปอย่างไร มันถูกลบออกจากการตั้งเวลา? มันยกเลิกการเชื่อมต่อกระบวนการจากตัวจัดการไฟล์ที่เปิดอยู่หรือไม่? หน่วยความจำเสมือนของกระบวนการเปิดตัวอย่างไร มีบางสิ่งที่เหมือนตารางทั่วโลกในหน่วยความจำที่ลีนุกซ์อ้างอิงทรัพยากรทั้งหมดที่เกิดขึ้นจากกระบวนการและเมื่อฉัน "ฆ่า" กระบวนการลีนุกซ์จะผ่านตารางนั้นและปลดปล่อยทรัพยากรทีละตัว? ฉันอยากรู้ทุกอย่างจริงๆ!


4
ความแตกต่างระหว่าง pkill และ killall คืออะไร?
ฉันรู้ว่ามีกฎการกรองมากกว่าpkill killallคำถามของฉันคืออะไรความแตกต่างระหว่าง: pkill [signal] name และ killall [signal] name ฉันอ่านแล้วว่าkillallมีประสิทธิภาพมากกว่าและฆ่ากระบวนการและกระบวนการย่อยทั้งหมด (และเรียกซ้ำ) ที่ตรงกับnameโปรแกรม pkillไม่ทำเช่นนี้ด้วย?

2
ทำไมส้อมกลไกการสร้างกระบวนการเริ่มต้นคืออะไร?
การเรียกใช้ระบบ UNIX สำหรับการสร้างกระบวนการ fork () สร้างกระบวนการลูกโดยการคัดลอกกระบวนการหลัก ความเข้าใจของฉันคือสิ่งนี้มักจะตามมาด้วยการเรียกร้องให้ exec () เพื่อแทนที่พื้นที่หน่วยความจำของกระบวนการลูก (รวมถึงส่วนของข้อความ) การคัดลอกพื้นที่หน่วยความจำของผู้ปกครองในทางแยก () ดูเหมือนจะสิ้นเปลืองกับฉันเสมอ (แม้ว่าฉันจะรู้ว่าของเสียสามารถลดลงได้ด้วยการทำให้ส่วนหน่วยความจำคัดลอกตามการเขียนดังนั้นจึงคัดลอกเฉพาะพอยน์เตอร์เท่านั้น) มีใครรู้บ้างไหมว่าทำไมจึงต้องใช้วิธีการทำสำเนานี้สำหรับการสร้างกระบวนการ



6
มีวิธีหยุดกระบวนการทำงานชั่วคราวบนระบบ Linux และกลับมาทำงานต่อในภายหลังหรือไม่?
ฉันต้องคัดลอกไฟล์บนเครื่อง และข้อมูลมีขนาดใหญ่มาก ตอนนี้เซิร์ฟเวอร์จำเป็นต้องให้บริการตามปกติและโดยปกติจะมีช่วงเวลาที่ยุ่งเหยิงในช่วงนั้น ดังนั้นมีวิธีการเรียกใช้คำสั่งดังกล่าวในลักษณะที่ว่าถ้าเซิร์ฟเวอร์ไม่ว่างชั่วโมงมันหยุดกระบวนการและเมื่อออกจากช่วงที่มันจะดำเนินการต่อหรือไม่ ตั้งใจ-ผล cp src dst if time between 9:00-14:00 pause process After 14:00 resume cp command.

4
วิธี Throttle ต่อกระบวนการ I / O ถึงขีด จำกัด สูงสุด
ฉันกำลังมองหาวิธี จำกัด กระบวนการของดิสก์ io ถึงขีด จำกัด ความเร็วที่ตั้งไว้ โดยหลักการแล้วโปรแกรมจะทำงานคล้ายกับสิ่งนี้: $ limitio --pid 32423 --write-limit 1M จำกัด กระบวนการ 32423 ถึง 1 เมกะไบต์ต่อวินาทีความเร็วในการเขียนฮาร์ดไดรฟ์

4
มีคำสั่งเหมือนด้านบนที่แสดงแบนด์วิดท์เครือข่ายและการเข้าถึงไฟล์ของกระบวนการทำงาน
ตัวอย่างเช่นเราต้องการดู: PROCESS IF TX RX FILE(regular) R/W prog1 eth0 200kB/s 12kB/s -- -- wlan0 12kB/s 100kB/s -- -- -- -- -- file1 R -- -- -- file2 R -- -- -- file3 W prog2 eth0 0kB/s 200kB/s -- -- -- -- -- file4 W -- -- -- file5 W เป็นไปได้ไหม …

4
จะเกิดอะไรขึ้นถ้าคุณแก้ไขสคริปต์ระหว่างการดำเนินการ
ฉันมีคำถามทั่วไปซึ่งอาจเป็นผลมาจากความเข้าใจผิดว่ากระบวนการจัดการใน Linux อย่างไร สำหรับวัตถุประสงค์ของฉันฉันจะกำหนด 'สคริปต์' เป็นตัวอย่างของรหัสทุบตีบันทึกไว้ในไฟล์ข้อความที่มีสิทธิ์ดำเนินการเปิดใช้งานสำหรับผู้ใช้ปัจจุบัน ฉันมีชุดของสคริปต์ที่โทรหากันตามกัน ฉันจะเรียกพวกเขาว่าสคริปต์ A, B และ C. Script A ดำเนินการชุดคำสั่งแล้วหยุดชั่วคราวจากนั้นจะเรียกใช้สคริปต์ B จากนั้นหยุดสคริปต์แล้วเรียกใช้สคริปต์ C ในคำอื่น ๆ ซีรีส์ ขั้นตอนเป็นดังนี้: เรียกใช้สคริปต์ A: ชุดคำสั่ง หยุด เรียกใช้สคริปต์ B หยุด เรียกใช้สคริปต์ C ฉันรู้จากประสบการณ์ว่าถ้าฉันเรียกใช้สคริปต์ A จนกระทั่งหยุดการทำงานชั่วคราวจากนั้นทำการแก้ไขในสคริปต์ B การแก้ไขเหล่านั้นจะสะท้อนให้เห็นในการทำงานของรหัสเมื่อฉันอนุญาตให้ทำงานต่อ ในทำนองเดียวกันถ้าฉันทำการแก้ไขสคริปต์ C ในขณะที่สคริปต์ A ยังคงหยุดชั่วคราวแล้วอนุญาตให้ดำเนินการต่อหลังจากบันทึกการเปลี่ยนแปลงการเปลี่ยนแปลงเหล่านั้นจะสะท้อนให้เห็นในการเรียกใช้โค้ด ต่อไปนี้เป็นคำถามจริงมีวิธีแก้ไขสคริปต์ A ในขณะที่ยังทำงานอยู่หรือไม่ หรือการแก้ไขเป็นไปไม่ได้เมื่อเริ่มดำเนินการ?

4
หลาม vs bc ในการประเมิน 6 ^ 6 ^ 6
ฉันประเมินการแสดงออก6^6^6โดยใช้pythonและbcแยก print 6**6**6เนื้อหาของไฟล์หลามคือ เมื่อฉันรันtime python test.pyฉันจะได้ผลลัพธ์เป็น real 0m0.067s user 0m0.050s sys 0m0.011s จากนั้นฉันรันคำสั่งtime echo 6^6^6 | bcที่ให้ผลลัพธ์ต่อไปนี้ให้ฉัน real 0m0.205s user 0m0.197s sys 0m0.005s จากผลลัพธ์เหล่านี้เห็นได้ชัดว่าเวลา sys ที่ใช้โดย python และ bc คือ 11ms และ 5ms ตามลำดับ คำสั่ง BC เฮงหลามในระดับเวลา SYSแต่เมื่อมันมาถึงผู้ใช้และเวลาจริงหลามเป็นเกือบ 4 ครั้งเร็วกว่าปีก่อนคริสตกาล สิ่งที่อาจจะไปที่นั่น ฉันไม่ได้ให้ความสำคัญกับกระบวนการเช่นนี้ ฉันพยายามที่จะเข้าใจสถานการณ์นี้

7
รับการใช้งานหน่วยความจำทั้งหมดของ chrome
เนื่องจาก Google Chrome / Chromium วางไข่หลายกระบวนการจึงยากที่จะเห็นจำนวนหน่วยความจำทั้งหมดที่กระบวนการเหล่านี้ใช้ทั้งหมด มีวิธีที่ง่ายหรือไม่ในการดูว่ามีหน่วยความจำรวมทั้งหมดที่กระบวนการเชื่อมต่อใช้อยู่หรือไม่

2
ฉันจะฆ่ากระบวนการ <defunct> ที่ parent เป็นผู้เริ่มต้นได้อย่างไร
การส่งกำลังแขวนอยู่บน NAS ของฉันเป็นระยะ ถ้าฉันส่ง SIGTERM มันจะไม่หายไปจากรายการกระบวนการและ&lt;defunct&gt;ฉลากจะปรากฏขึ้นถัดจากมัน ถ้าผมส่ง SIGKILL initก็ยังคงไม่ได้หายไปและผมก็ไม่สามารถยุติแม่เพราะแม่เป็น วิธีเดียวที่ฉันสามารถกำจัดกระบวนการและรีสตาร์ทเกียร์คือการรีบูต ฉันตระหนักถึงสิ่งที่ดีที่สุดที่ฉันสามารถทำได้คือลองและแก้ไขการส่งข้อมูล (และฉันพยายามแล้ว) แต่ฉันเป็นผู้เริ่มต้นในการรวบรวมและฉันต้องการให้แน่ใจว่า torrents ของฉันเสร็จสิ้นก่อนที่ฉันจะเริ่มยุ่งกับมัน

2
ซอมบี้สามารถมีเด็กกำพร้าได้หรือไม่? เด็กกำพร้าจะถูกรบกวนจากการเก็บซอมบี้หรือไม่?
ตามที่ฉันเข้าใจแล้วกระบวนการซอมบี้ตายไปแล้ว แต่ยังคงมีอยู่เป็นตัวยึดตำแหน่งในตารางกระบวนการจนกว่าผู้ปกครองของมัน (หรือinitหากตัวเองเป็นผีดิบกำพร้า) ตรวจสอบสถานะทางออกของมัน และความเข้าใจของฉันเกี่ยวกับกระบวนการเด็กกำพร้าก็คือพวกเขาเป็นกระบวนการที่ยังมีชีวิตอยู่และทำงานอยู่ แต่พ่อแม่ของเขาเสียชีวิต เมื่อซอมบี้ตายไปแล้วเด็ก ๆ ของพวกมันจะกลายเป็นเด็กกำพร้าใช่ไหม? พวกเขาจะได้รับผลกระทบหรือไม่เมื่อได้รับผลผีดิบ? โดยเฉพาะจะinitรับเอาพวกมันมาเป็นลูกของมันต่อเมื่อซอมบี้ถูกเก็บเกี่ยวหรือพวกมันจะถูกเลี้ยงทันทีที่แม่กลายเป็นซอมบี้?

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.