Tôi có một dịch vụ (do chính tôi viết) đang chạy trên máy chủ Debian (Jessie) và nhật ký riêng của dịch vụ xảy ra để cho biết rằng nó đã khởi động lại vào một thời điểm cụ thể. Không có dấu hiệu của segfault hoặc sự cố khác, vì vậy bây giờ tôi đang cố gắng tìm hiểu xem ứng dụng bằng cách nào đó có âm thầm thất bại và được systemd xử lý hay liệu người dùng có cố tình khởi động lại dịch vụ thông qua hay không systemctl
.
Lịch sử shell không hiển thị hoạt động như vậy, nhưng đó không phải là kết luận vì export HISTCONTROL=ignoreboth
và vì một phiên SSH có thể đã hết thời gian, ngăn lịch sử bash của lần đăng nhập trước đó được ghi vào đĩa. Máy chủ không được khởi động lại vào thời điểm đó.
Nhưng tôi hy vọng rằng chính systemd sẽ giữ một bản ghi cho biết khi nào một dịch vụ được khởi động lại có chủ đích . Thật ngạc nhiên, tôi không thể tìm thấy bất kỳ tài liệu nào (ví dụ journalctl
) về cách lấy các bản ghi đó.
Một số bài đăng khác (ví dụ: Where is / why không có nhật ký cho các dịch vụ systemd người dùng thông thường? ) Dường như chỉ ra rằng nên có các thông điệp tường trình như thế này:
Jan 15 19:28:08 qbd-x230-suse.site systemd[1]: Starting chatty.service...
Jan 15 19:28:08 qbd-x230-suse.site systemd[1]: Started chatty.service.
Nhưng tôi không thấy các thông điệp tường trình như vậy trên hệ thống của mình.
Có cách nào để tìm hiểu khi nào dịch vụ systemd được khởi động, dừng hoặc khởi động lại không?
Chỉnh sửa : Có vẻ như vấn đề điển hình mà mọi người có thể gặp phải là họ chạy journalctl
như một người dùng không có đặc quyền. Đây không phải là trường hợp của tôi, tôi đã hoạt động như root
toàn bộ thời gian. Đáp lại một bình luận, việc chạy chỉ grep systemd /var/log/syslog
mang lại cho tôi điều này:
Jun 6 09:28:35 server systemd[22057]: Starting Paths.
Jun 6 09:28:35 server systemd[22057]: Reached target Paths.
Jun 6 09:28:35 server systemd[22057]: Starting Timers.
Jun 6 09:28:35 server systemd[22057]: Reached target Timers.
Jun 6 09:28:35 server systemd[22057]: Starting Sockets.
Jun 6 09:28:35 server systemd[22057]: Reached target Sockets.
Jun 6 09:28:35 server systemd[22057]: Starting Basic System.
Jun 6 09:28:35 server systemd[22057]: Reached target Basic System.
Jun 6 09:28:35 server systemd[22057]: Starting Default.
Jun 6 09:28:35 server systemd[22057]: Reached target Default.
Jun 6 09:28:35 server systemd[22057]: Startup finished in 59ms.
Jun 6 09:37:08 server systemd[1]: Reexecuting.
Stopped target Default
, Starting Shutdown
v.v. Không có gì chỉ ra bất cứ điều gì về các dịch vụ riêng lẻ. Có lẽ đó chỉ là một vấn đề cấu hình? Lưu ý Tôi đang sử dụng Debian Jessie trong trường hợp cụ thể này.
/etc/systemd/journald.conf
không bị ghi đè MaxLevelStore
hoặc MaxLevelSyslog
, và tìm trong tất cả các địa điểm khác mà bạn có thể định cấu hình tạp chí như được liệt kê trong man journald.conf
.
/etc/systemd
về cơ bản là trống (tất cả các tùy chọn nhận xét, bao gồm cả các tệp bạn đã đề cập).
grep systemd /var/log/syslog