Gần đây, máy Mac của tôi đang hiển thị một số tin nhắn kỳ lạ như "Tháng 13 đã hết giới hạn".
Làm cách nào để khắc phục lỗi này Tôi không thể đến trung tâm sửa chữa được ủy quyền của ant apple vì nó rất xa trung tâm Apple
Gần đây, máy Mac của tôi đang hiển thị một số tin nhắn kỳ lạ như "Tháng 13 đã hết giới hạn".
Làm cách nào để khắc phục lỗi này Tôi không thể đến trung tâm sửa chữa được ủy quyền của ant apple vì nó rất xa trung tâm Apple
Câu trả lời:
Lỗi này được ghi lại trên iOS 11 và trên macOS 10.13 và tôi không thấy nó gây ra bất kỳ chức năng hoặc sự cố cụ thể nào trên bất kỳ nền tảng nào.
Tôi sẽ liên kết đến câu hỏi chính ở đây về việc "macOS có đăng nhập quá nhiều không" vì đó là một ý kiến và ấn tượng đáng để thảo luận. Một số người có thể cảm thấy tốt hơn nếu không có tin nhắn trừ khi một tình trạng thực sự nghiêm trọng cần hành động. Những người khác muốn chi tiết hơn nữa để họ có thể biết những gì đang xảy ra / tìm hiểu / đo lường. Vì vậy, đây sẽ là một sự đánh đổi như thế nào đây là những vấn đề / được phân loại / sử dụng.
Một nhà phát triển thú vị có một số công cụ là Howard Oakley, người viết blog tại https://eclecticlight.co/
Trang tải xuống của anh ấy có hai ứng dụng đáng quan tâm (sử dụng liên kết tải xuống bên trái vì các phiên bản sản phẩm bên dưới là bản beta và có thể không có trong một ngày hoặc một tuần):
Tôi có thể xác minh tính hợp pháp của vấn đề này. Tôi đã gặp vấn đề tương tự vào ngày hôm qua và sau khi khởi động lại, máy tính đã bị vô hiệu hóa do lỗi này. Vì một số lý do, máy tính không thể xử lý trong tháng này và đưa ra lỗi ở bất cứ nơi nào có cơ sở dữ liệu hoặc nguyên tắc.
Để khắc phục điều này:
Mở Activity Monitor và buộc bỏ hai tiến trình : lsd
,UserEventAgent
Mở tùy chọn hệ thống và điều hướng đến "Ngày & giờ"
Bỏ chọn "Đặt ngày và giờ tự động"
Trong lịch, chọn một ngày trước tháng 12 năm 2017 và nhấn Save
Nếu UserEventAgent
hoặc lsd
tiếp tục gây ra sự cố, sau đó buộc bỏ chúng lại sau khi đặt ngày.
Những người khác ở đây có vấn đề này
Tại sao?
Dường như với tôi, UserEventAgent đã cố gắng sử dụng hai tệp plist:
System/Library/LaunchAgents/com.apple.UserEventAgent-Aqua.plist
và
System/Library/LaunchAgents/com.apple.UserEventAgent-LoginWindow.plist
Khi nó cố gắng sử dụng các bảng, nó đã gặp lỗi:
Month 13 is out of bounds
Tôi không chắc điều gì đã thực sự xảy ra trong UserEventAgent, nhưng rõ ràng là khi gặp lỗi, nó không thể xử lý và gây ra việc sử dụng CPU và RAM cao.
Tôi gặp vấn đề tương tự với việc sử dụng bộ nhớ và CPU UserEventAgent cực kỳ cao bắt đầu từ đầu tháng 12 năm 2017. Bảng điều khiển cho thấy lỗi "hết tháng" như mô tả ở trên.
Tôi đã thử tiện ích đĩa "sơ cứu", khởi động lại, chế độ an toàn (để xóa bộ đệm hệ thống), xóa NVRAM và SMD, không có gì giúp được. Tôi đã nhận thấy rằng việc sử dụng CPU và bộ nhớ không tăng đột biến ở chế độ an toàn.
Giống như @tgray và u / kidtexas , đến một lúc nào đó tôi phát hiện ra rằng nếu tôi vô hiệu hóa tất cả các launchd tùy chỉnh của mình thì sẽ xảy ra sự cố.
Cuối cùng tôi đã viết kịch bản nhỏ dưới đây để giúp tôi gỡ lỗi mà nguyên nhân gây ra vấn đề. Nó đã trở thành một plist chạy vào đầu tiên mỗi tháng:
<key>StartCalendarInterval</key>
<dict>
<key>Day</key>
<integer>1</integer>
<key>Hour</key>
<integer>03</integer>
<key>Minute</key>
<integer>00</integer>
</dict>
Nhiều người trong số tôi sử dụng StartCalendarInterval
khóa và sử dụng tập lệnh bên dưới tôi có thể cho thấy rằng họ dường như không gây ra vấn đề về RAM và bộ nhớ, vì vậy tôi không hiểu rõ tại sao một nguyên nhân cụ thể gây ra sự cố. Bất kể, đây là cách tôi sắp xếp nó ra.
Tôi mạnh mẽ đề nghị bạn đọc xem xét thông qua kịch bản để cố gắng hiểu những gì nó làm thay vì chỉ cần sao chép và dán. Cụ thể, như đã viết, điều này sẽ chỉ hoạt động cho những người tham gia ~/Library/LaunchAgents
(không phải /Library/LaunchDaemons
những người khác) và nó chỉ cố ý kiểm tra những người có tên tệp và <key>Label</key>
theo mẫu cụ thể : com.USERNAME.my_plist_name[.plist]
. Trước khi chạy nó, tôi đã sử dụng một lớp lót cho bootout
tất cả các thông số của mình: for plist in com."$(whoami)".*.plist; do launchctl bootout gui/"${MYUID}"/"${plist%.plist}" || true; done
và sau đó xác minh chúng không còn xuất hiện dưới launchctl list
kết quả.
#! /bin/bash
# /apple/307512/month-13-is-out-of-bounds
set -euf -o pipefail
MYUID="$(id -u)"
pushd "${HOME}"/Library/LaunchAgents
while IFS= read -r -d '' plist; do
echo "${plist}"
stats=($(ps ux | grep -v grep | grep UserEventAgent | awk '{ print $3, $5}'))
cpu="${stats[0]}"
vmem="${stats[1]}"
echo "CPU use and virtual memory size while disabled: ${stats[@]}"
launchctl bootstrap gui/"${MYUID}" "${plist}"
sleep 5
stats=($(ps ux | grep -v grep | grep UserEventAgent | awk '{ print $3, $5}'))
echo "CPU use and virtual memory size while enabled: ${stats[@]}"
echo "Change in vmem: $(( "${vmem}" - "${stats[1]}" ))"
echo
done < <(find . -iname "com.$(whoami).*.plist" -print0)
popd
bootout
(hoặc tương tự) mà n8henrie khuyên dùng.
Giống như những người khác, tôi đã sử dụng CPU cao và sử dụng RAM rất lớn từ UserEventAgent (xem nhận xét của tôi ở trên). Thay đổi ngày thành tháng 11 và buộc bỏ các thứ cố định UserEventAgent. Tất cả điều này bắt đầu vào thứ bảy sau khi tôi khởi động lại.
Tôi đã tìm ra điều này cho tôi. Hy vọng cho những người khác có vấn đề, điều này sẽ làm việc cho bạn.
Vấn đề là một số nguyên LaunchAgent tôi có trong ~ / Library / LaunchAgents. Đây là một tệp plist đơn giản gọi StartCalWikiInterval, đây là một khóa hợp lệ cho các chuỗi khởi chạy. Công việc LaunchAgent gọi một tập lệnh shell sao chép một số tệp vào vị trí sao lưu vào ngày đầu tiên của tháng. Công việc hoàn toàn không được gọi - Tôi nghĩ rằng đó là launchd kiểm tra các công việc được tải so với Lịch gây ra sự cố. Ngay sau khi tôi dỡ bỏ bảng này và chuyển tệp ra khỏi thư mục, UserEventAgent vẫn ổn (sau khi thoát khỏi lực lượng). Lần thứ hai tôi tải plist (launchctl load xxxx), UserEventAgent đã bị hỏng.
StartCalWikiInterval là một khóa hợp lệ cho launchd như được thấy ở đây trong các tài liệu của Apple .
Vì vậy, đối với bất kỳ ai gặp sự cố, hãy kiểm tra các thư mục LaunchAgent của bạn và tìm khóa StartCalWikiInterval (hoặc bất kỳ khóa nào liên quan đến lịch khác). Tôi không có bất kỳ vấn đề nào với khoảng thời gian dựa trên thời gian.
Lưu ý: Điều này không khắc phục được lỗi 'Tháng 13 ngoài giới hạn', chỉ là hành vi UserEventAgent điên rồ.
Sau khi báo cáo điều này với Apple và nhân rộng chuỗi leo thang, tôi được cho biết điều này nên được sửa trong macOS 10.13.3.
Rõ ràng, điều này là do một ứng dụng gọi thủ tục NSDate không dùng nữa là 'descriptionWithCalWikiFormat' .
Bạn có thể đọc thêm tại https://forums.developer.apple.com/thread/88417 .
Trong một số trường hợp, chỉnh sửa hoặc xóa một số tệp plist nhất định sẽ ngăn các chương trình gọi thủ tục không dùng nữa, nhưng cách khắc phục thực sự là cập nhật hệ điều hành.