Tôi đang cố gắng học cách sử dụng systemd cơ bản và tôi gặp phải một vấn đề khó hiểu với các đơn vị dịch vụ người dùng.
Khi chạy các dịch vụ thông thường với systemctl bắt đầu some.service Tôi có thể tìm thấy nhật ký đầy đủ cho dịch vụ này (bao gồm cả những gì nó đã in cho stdout / stderr, như tôi hiểu) bằng cách chạy sudo Journalctl --unit some.service .
Hãy xem xét ví dụ về dịch vụ chatty.service :
[Service]
ExecStart=/usr/bin/echo "test from chatty.service"
Khi tôi đặt tệp dịch vụ này vào ~ / .config / systemd / user / chatty.service và chạy nó với systemctl --user start chatty.service Tôi không thể tìm thấy đầu ra của nó được gửi đến stdout trong tạp chí, không phải với tạp chí đơn giản hay với tạp chí - -user . Tôi chỉ nhận được đầu ra sau trong cả hai:
Jan 15 19:16:52 qbd-x230-suse.site systemd[1168]: Starting chatty.service...
Jan 15 19:16:52 qbd-x230-suse.site systemd[1168]: Started chatty.service.
Và tạp chí --unit chatty.service hoàn toàn không trả lại bất cứ điều gì (có hoặc không có --user không tạo ra sự khác biệt).
Trong khi nếu tôi di chuyển cùng một tệp dịch vụ sang / etc / systemd / system và chạy nó với sudo systemd start chatty.service thì tôi nhận được kết quả đầu ra sau khi tôi chạy sudo tạp chí --unit chatty.service :
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.
Jan 15 19:28:08 qbd-x230-suse.site echo[27098]: test from chatty.service
Có vẻ như đơn vị dịch vụ người dùng không được tích hợp tốt bằng cách nào đó, điều này có được mong đợi không, tôi có thiếu điều gì không hay đó là một lỗi?
Tôi đang chạy openSUSE 13.1 x86-64, với systemd 208 (cài đặt mặc định).
journalctl --user --user-unit chatty
để nhận các thông báo bắt đầu / dừng từ systemd, nhưng không phải là những gì quá trình echo xuất ra, ít nhất là trong trường hợp của tôi. Bạn có thể nhận được thông báo lặp lại vớijournalctl --user
hoặc sử dụng một số bộ lọc khác.