Trong nghiên cứu của tôi cho đến nay tôi đã nhận thấy có hai cách tiếp cận để kích hoạt đồng hồ bấm giờ trên mâm xôi: sử dụng systemd hoặc cài đặt watchdog. Tất cả đều được giải thích rõ ở đây: https://www.raspberrypi.org/forums/viewtopic.php?f=29&t=147501#
Và tôi đã quản lý để làm cho nó hoạt động theo cả hai cách, nhưng không phải trong quá trình khởi động lại / tắt máy. Tôi đã sử dụng một cái nĩa để kiểm tra nó và nó phản ứng với điều đó, tuy nhiên khi tôi thử:
sudo poweroff
Nó chỉ ở lại. Vì vậy, tôi nghĩ có cách nào để buộc watchdog tiếp tục chạy trong khi khởi động lại / tắt máy để nó đặt lại sau vài giây nếu nó không khởi động đúng cách?
Hầu hết các cách tiếp cận bắt đầu watchdog trong khi khởi động, nhưng nếu bạn cần nó chạy mọi lúc thì sao? Quả mâm xôi của tôi đã dừng khởi động lại và tôi phải rút / cắm thủ công để nó hoạt động.
CẬP NHẬT:
Một số công cụ rõ ràng hơn nhiều đối với tôi bây giờ. Có 3 điều cần xem xét:
- đồng hồ bấm giờ
- daemon giám sát
- daemon dịch vụ giám sát
bộ đếm thời gian theo dõi: một thanh ghi kích hoạt thiết lập lại khi nó tràn, mỗi chu kỳ RPI mà nó tăng, cần phải được xóa (đá) thường xuyên để tránh thiết lập lại
Để chạy nó khi khởi động, hãy thêm vào sau /boot/config.txt :
dtparam=watchdog=on
watchdog daemon: một quá trình chịu trách nhiệm dọn dẹp (đá) bộ đếm thời gian theo dõi thường xuyên
Cài đặt nó:
sudo modprobe bcm2835_wdt
echo "bcm2835_wdt" | sudo tee -a /etc/modules
sudo apt-get install watchdog
sudo update-rc.d watchdog defaults
Định cấu hình /etc/watchdog.conf :
watchdog-device = /dev/watchdog
watchdog-timeout = 14
realtime = yes
priority = 1
max-load-1 = 24
Cấu hình / etc / default / watchdog :
watchdog_module="bcm2835_wdt"
Để định cấu hình, hãy thêm sau vào /etc/modprobe.d/watchdog.conf :
options bcm2835_wdt nowayout=1 heartbeat=10
giới thiệu: http://vk5tu.livejournal.com/35721.html
Thông số nhịp tim của mô-đun hạt nhân là khoảng cách tối đa giữa các nhịp tim mà thiết bị nhìn thấy trước khi phần cứng khởi động lại
Tham số nowayout xác định điều gì sẽ xảy ra khi thiết bị / dev / watchdog bị đóng: nhịp tim có còn được mong đợi hay không? Giá trị 1 nói rằng bộ đếm ngược để khởi động lại tiếp tục chạy và nếu thiết bị không được mở lại và nhịp tim được viết thì máy sẽ khởi động lại.
Kích hoạt nó (Nếu điều này không hoạt động, trước tiên hãy chăm sóc watchdog.service và thử lại):
sudo systemctl enable watchdog
Theo dõi nó:
sudo systemctl status watchdog
Cơ quan giám sát dịch vụ daemon: acitvates khi cơ quan giám sát daemon thất bại / dừng, thường chạy một keepalive daemon mà đá các cơ quan giám sát thường xuyên
Định cấu hình /lib/systemd/system/watchdog.service :
# OnFailure=wd_keepalive.service
- Bình luận hiện này vô hiệu hóa các keepalive daemon vì vậy một khi cơ quan giám sát daemon thất bại / dừng gì sẽ ngừng cơ quan giám sát hẹn giờ từ khởi động lại RPI
[Install]
WantedBy=multi-user.target
- vá lỗi
Cuối cùng:
Khởi động lại RPI. Khi mâm xôi được khởi động lại, mọi thứ sẽ bắt đầu (bộ đếm thời gian watchdog và daemon watchdog). Để kiểm tra việc sử dụng này:
cat /var/log/syslog | grep watchdog
Sản lượng dự kiến:
Jun 14 12:09:08 raspberrypi systemd[1]: Starting watchdog daemon...
Jun 14 12:09:08 raspberrypi watchdog[813]: starting daemon (5.14):
Jun 14 12:09:08 raspberrypi watchdog[813]: int=1s realtime=yes sync=no soft=no mla=24 mem=0
Jun 14 12:09:08 raspberrypi watchdog[813]: ping: no machine to check
Jun 14 12:09:08 raspberrypi watchdog[813]: file: no file to check
Jun 14 12:09:08 raspberrypi watchdog[813]: pidfile: no server process to check
Jun 14 12:09:08 raspberrypi watchdog[813]: interface: no interface to check
Jun 14 12:09:08 raspberrypi watchdog[813]: temperature: no sensors to check
Jun 14 12:09:08 raspberrypi watchdog[813]: test=none(0) repair=none(0) alive=/dev/watchdog heartbeat=none to=root no_act=no force=no
Jun 14 12:09:08 raspberrypi watchdog[813]: watchdog now set to 14 seconds
Jun 14 12:09:08 raspberrypi watchdog[813]: hardware watchdog identity: Broadcom BCM2835 Watchdog timer
Jun 14 12:09:08 raspberrypi systemd[1]: Started watchdog daemon.
Và:
ps aux|grep watchdog
Sản lượng dự kiến:
root 813 0.0 0.2 1888 1760 ? SLs 12:09 0:00 /usr/sbin/watchdog
pi 900 0.0 0.2 4752 1992 pts/0 S+ 12:10 0:00 grep --color=auto watchdog
KIỂM TRA :
Giết daemon watchdog, chạy:
ps aux|grep watchdog
Xem ID tiến trình và tiêu diệt nó:
root 812 0.0 0.2 1888 1760 ? SLs 12:16 0:00 /usr/sbin/watchdog
pi 898 0.0 0.2 4752 1992 pts/0 S+ 12:16 0:00 grep --color=auto watchdog
sudo kill -9 812
Thử nghiệm xe nâng cổ điển, chạy:
: (){ :|:& };:
Để kiểm tra sẽ thiết lập lại mâm xôi nếu quá trình khởi động lại thất bại, hãy chạy:
sudo poweroff
- với cái này tôi đã gặp một số vấn đề
Raspberry nên khởi động lại sau 15 giây.
sudo poweroff
. Đôi khi nó hoạt động, đôi khi nó không: S