`Dòng 19: 12364 Kills` nghĩa là gì trong thông báo lỗi crontab?


10

Tôi có một nhiệm vụ crontab hàng ngày:

50 1 * * * sh /my_path/daily_task.sh > /tmp/zen_log 2>&1

Tập lệnh shell Daily_task này sẽ chạy một số tập lệnh python và tạo ra một tệp dữ liệu.

Và nó thất bại trong hai đêm. Nhưng khi tôi đến vào buổi sáng, chạy các kịch bản python bằng tay, tôi đã nhận được tệp dữ liệu. Hoặc tôi đặt một crontab mới chỉ đặt ngày 0 10 * * *và crontab này cũng thành công.

Vì vậy, ngày hôm qua, tôi đã đưa > /tmp/zen_log 2>&1vào tác vụ cron để nhận được một số thông báo lỗi.

Và sáng nay, tôi nhận được thông báo lỗi này trong zen_log:

/my_path/daily_task.sh: line 19: 12364 Killed /usr/local/bin/python2.7 my_python_script.py 2 mix > mix_hc_$datestamp 2>&1

Có vẻ như một số quá trình đã bị giết? Nhưng chính xác điều này line 19: 12364 Killedcó nghĩa là gì?


Tái bút

Hôm nay, một phút trước, khi tôi tự chạy kịch bản python, tôi đã nhận được: /usr/local/bin/python2.7 my_python_script.py 2 mix > mix_hc_$datestamp 2>&1 Killed


Có gì line 19trong kịch bản? Có thể đăng kịch bản của bạn sẽ giúp chúng tôi cung cấp cho bạn một câu trả lời.
tà tà

line 19/usr/local/bin/python2.7 my_python_script.py 2 mix > mix_hc_$datestamp 2>&1
Zen

Bạn có thể cập nhật câu hỏi của bạn với nội dung của daily_task.sh? Thật khó để hiểu tại sao nó thất bại xung quanh 1:50 amnhưng thành công 10 amvới thông tin cho đến nay.
tà tà

3
Ngoài ra kiểm tra nội dung của /var/log/messagestôi tự hỏi nếu tập lệnh của bạn đang tạo ra lỗi hết bộ nhớ (OOM) và bị giết. Hệ thống của bạn có xu hướng chạy các kịch bản / ứng dụng / công việc đói tài nguyên hệ thống khác trong giờ khuya so với giờ AM không?
tà tà

@DevNull, tôi đã kiểm tra nhật ký kernel, bây giờ tôi chắc rằng tập lệnh này đã chiếm quá nhiều bộ nhớ và kernel đã giết nó.
Zen

Câu trả lời:


17

Thông thường khi các ứng dụng đang được sử dụng killed, bạn nên xem nhanh /var/log/messagestệp của mình để xem kernel có giết quá trình không. Trình kích hoạt phổ biến nhất (theo kinh nghiệm của tôi) luôn là do lỗi hết bộ nhớ (OOM), vì công ty của tôi chủ yếu sử dụng các ứng dụng java, nên các nhà phát triển xuất bản một bản cập nhật mã xấu gây ra sự kiện OOM .

Lập lịch tác vụ khi HĐH của bạn có nhiều tài nguyên sẵn có nhất có lẽ là lý do tại sao nó thành công trong các khe thời gian AM và không phải trong PM khi hầu hết mọi người muốn lên lịch cho các công việc hệ thống thuế. Các giải pháp đơn giản cho việc này là tăng tài nguyên hệ thống của bạn, hạn chế tài nguyên được phân bổ cho mã của bạn hoặc di chuyển xung quanh khi công việc của bạn được lên lịch để chúng không xung đột.


1
Chỉ cần lưu ý thêm rằng theo mặc định, Ubuntu xuất ra messagessyslog thay vì/var/log/messages
sồi
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.