Score:0

ตรวจสอบไฟล์ที่เปิดอยู่และฆ่า PID ด้วยเชลล์สคริปต์อย่างไร

ธง fr

ระบบของฉันทำให้ฉันมีข้อผิดพลาดที่บอกว่า 'เปิดไฟล์มากเกินไป'. ฉันตรวจสอบข้อผิดพลาดนี้แล้วพบว่า /usr/bin/uwsgi สร้างซ็อกเก็ต (?) มากกว่า 1,020 ถ้ามันสร้างมากกว่า 1,020 ฉันเดาว่าข้อผิดพลาดข้างต้นจะเกิดขึ้น

ดังนั้นสิ่งที่ฉันพยายามทำคือเรียกใช้เชลล์สคริปต์ที่ตรวจสอบจำนวนไฟล์ที่เปิดอยู่และหากเกิน 1,000 ไฟล์ให้ฆ่า PID เพื่อแก้ไขข้อผิดพลาดนี้ในขั้นตอนนี้

#uwsgimonitor.sh
#!/bin/bash

#ชื่อไฟล์=/usr/bin/uwsgi

ชื่อไฟล์=/usr/bin/uwsgi
Cnt= lsof | awk '/uwsgi/ {พิมพ์ $1,$2}' | ยูนิค -c | เรียง -r | หัว -1 | awk '{พิมพ์ $1}'
PROCESS_ID = lsof | awk '/uwsgi/ {พิมพ์ $1,$2}' | ยูนิค -c | เรียง -r | หัว -1 | awk '{พิมพ์ $2}'

ถ้า [ $Cnt gt 1000 ]
แล้ว
    echo "พบจำนวนซ็อกเก็ตที่เปิดเกิน $Cnt"
    ฆ่า -9 $PROCESS_ID
อื่น
    echo "" #ไม่มีอะไรทำ.
ไฟ

ใน crontab ฉันเพิ่มบรรทัดนี้ แต่ดูเหมือนว่าจะไม่ฆ่า PID ที่ฉันหมายถึง

* * * * * sh /home/root/scripts/uwsgimonitor.sh

ฉันพลาดอะไรไป

ขอบคุณล่วงหน้า.

cn flag
สิ่งนี้จะไม่ช่วยแก้ปัญหาของคุณ คุณต้องดูวิธีกำหนดค่า UWSGI/เว็บเซิร์ฟเวอร์ของคุณเพื่อจำกัดจำนวนซ็อกเก็ตที่เปิด หรืออนุญาตให้ผู้ใช้เปิดไฟล์เพิ่มเติมผ่าน ulimits.conf
deokyong song avatar
fr flag
ฉันควรจะพูดถึงพื้นหลัง ฉันเป็นผู้ทดสอบระบบอัตโนมัติและปัญหานี้ได้รับการแก้ไขแล้ว ในขณะเดียวกัน ฉันเพิ่งใช้เชลล์สคริปต์นี้เพื่อป้องกันไม่ให้ข้อความแสดงข้อผิดพลาดปรากฏขึ้น เป็นเพียงวิธีแก้ปัญหาชั่วคราวในการทดสอบแอปของฉัน
Score:0
ธง fr

สำหรับคนที่อยากรู้ว่าสถานการณ์ของฉันเป็นอย่างไร

#!/bin/bash


count=$(lsof | awk '/uwsgi/ {พิมพ์ $1,$2}' | uniq -c | sort -r | head -1 | awk '{print $1}')
PROCESS_ID=$(lsof | awk '/uwsgi/ {print $1,$2}' | uniq -c | sort -r | head -1 | awk '{print $2}')
คาดหวังขีด จำกัด = 1,000

echo "open socket:$count"
echo "pid:$PROCESS_ID"

ถ้า [[ ${count} -gt ${expectLimit} ]]
แล้ว
        echo "พบ uwsgi เกินขีดจำกัด :${expectLimit}"
        ฆ่า -9 $PROCESS_ID
อื่น
        echo "" #ไม่มีอะไรทำ.
ไฟ

อันนี้ใช้ได้สำหรับฉัน ขอบคุณ.

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา