ฉันจะรู้ได้อย่างไรว่าจำเป็นต้องรีบูตหลังจากการอัพเดตหรือไม่


28

ฉันมี 4 เซิร์ฟเวอร์พร้อมกับ Debian Wheezy OS ฉันติดตั้ง Apticron แล้วซึ่งแจ้งให้ฉันทราบเกี่ยวกับการอัปเดต การปรับปรุงเดเบียนเกิดขึ้นบ่อยครั้งเมื่อฉันเสร็จสิ้นการอัปเดตเซิร์ฟเวอร์ 4 ตัวสุดท้ายฉันจะได้รับอีเมลใหม่เกี่ยวกับการอัปเดตใหม่บนเซิร์ฟเวอร์ตัวแรก ฉันพยายามอัปเดตเซิร์ฟเวอร์ทั้งหมดเมื่อฉันได้รับการแจ้งเตือน แต่ฉันไม่รู้เลยว่าจำเป็นต้องรีบูตเซิร์ฟเวอร์หรือไม่ ฉันได้อ่านแล้วว่าหากไดเรกทอรี"/var/run"มีไฟล์"reboot-required"ฉันต้องรีบูตเซิร์ฟเวอร์ แต่ฉันไม่เคยเห็นไฟล์นี้"/var/run"มา ฉันจะรู้ได้อย่างไรว่าต้องมีการรีบูตเมื่อใด ฉันไม่ต้องการรีบูตเซิร์ฟเวอร์ทุกครั้งเมื่อฉันติดตั้งการอัปเดตใหม่หากไม่จำเป็น

ฉันเข้าใจว่าถ้าฉันอัปเดต PHP หรือ MySQL ฯลฯ ฉันไม่จำเป็นต้องรีบูตเซิร์ฟเวอร์ แต่การอัปเดตมักจะมี "lib ... "

ด้านล่างเป็นอัปเดต 9 รายการ (ฉันได้รับในสัปดาห์นี้)

krb5-locales 1.10.1+dfsg-5+deb7u3
libdbus-1-3 1.6.8-1+deb7u6
libgssapi-krb5-2 1.10.1+dfsg-5+deb7u3
libk5crypto3 1.10.1+dfsg-5+deb7u3
libkrb5-3 1.10.1+dfsg-5+deb7u3
libkrb5support0 1.10.1+dfsg-5+deb7u3
libruby1.8 1.8.7.358-7.1+deb7u2
libxml2 2.8.0+dfsg1-7+wheezy3
ruby1.8 1.8.7.358-7.1+deb7u2

ฉันไม่รู้ว่า "libkrb, libgssapi" ฯลฯ จะตรวจสอบได้อย่างไรว่าจำเป็นต้องรีบูตหรือไม่ โปรดอย่าแนะนำให้ติดตั้ง UnattendedUpgrades เพื่อให้เซิร์ฟเวอร์อัปเดตโดยอัตโนมัติเนื่องจากอาจทำให้เว็บไซต์ออฟไลน์หากการปรับปรุงบางอย่างไม่ถูกต้อง


หากคุณใช้เฉพาะsecurityสตรีมและไม่ใช่การอัปเดตทั่วไปคุณจะไม่ได้รับการอัปเดตมากมาย
poolie

คำตอบ:


31

ตรวจสอบcheckrestartจากdebian-goodiesแพ็คเกจ มันแสดงกระบวนการที่ใช้ libs เวอร์ชันเก่าที่คุณอัพเดต หากคุณไม่สามารถลบกระบวนการทั้งหมดออกจากรายการคุณต้องรีบูต :)

นอกจากนี้ (ตามที่ YuKYuK พูด) ให้ทำการรีบูตเสมอหลังจากการอัปเดตเคอร์เนล!


10
needrestartอีกวิธีหนึ่งคือการเช็คเอาต์ linux-audit.com/…
ypid

9

cat /var/run/reboot-required.pkgs'service' waiting for a reloadเพื่อดู ไม่ต้องการการรีบูตเฉพาะการอัพเกรดเคอร์เนล (และ Windows :)

หรือบน Debian: lsof | grep lib | grep DEL


ลืมที่จะพูดว่า: เขารายการ libs ปรับปรุงทั้งหมด หลังจากนั้นคุณจะต้องเริ่มแอพใหม่ด้วยการอ้างอิง
YuKYuK

ในขณะที่ฉันเขียนในคำถามของฉันฉันไม่เคยเห็นไฟล์ /var/run/reboot-required.pkgs ฉันจะตรวจสอบโฟลเดอร์นี้หลังจากอัพเดทแต่ละครั้ง แต่ไม่มีอะไรเลย
user1406271

lsof | lib | grep DEL เพื่อดู lib กำลังรอ "อัปเดต"
YuKYuK

2
ใช่และคำสั่งแสดง libs ที่กำลังรอ "อัปเดต" และ libs บางตัวเพียงรอการรีบูต "บริการ" อัพเดตเคอร์เนลเท่านั้นที่จำเป็นต้องรีบูตระบบ (เพราะเคอร์เนลคือเคอร์เนล :)
YuKYuK

3
หมายเหตุเกี่ยวกับ Debian Jessie: reboot-notifierเป็นแพคเกจขนาดเล็กที่ไม่ได้ติดตั้งโดยค่าเริ่มต้นซึ่งจะผนวกไฟล์นี้เมื่อจำเป็นต้องมีการรีบูตเพื่อโหลดเคอร์เนลที่อัปเดต reboot-notifierสามารถใช้เป็นทางเลือกupdate-notifier-commonซึ่งถูกลบใน Debian Jessie ดูเพิ่มเติม: serverfault.com/a/92939/177172
ypid

2

เพียงเพิ่มสิ่งนี้ฉันมีปัญหาเดียวกันกับเซิร์ฟเวอร์ของฉันและฉันเขียนสคริปต์การปรับปรุงที่ฉันตรวจสอบ / var / run / เหมือน YuKYuK แนะนำ:

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