Saya punya sistem dengan beberapa daemon yang berjalan (sebagai unit systemd) yang menampilkan informasi log ke jurnal di Arch Linux. Saya ingin mengarahkan output jurnal dari beberapa file unit tersebut ke file teks terpisah yang lokasinya saya tentukan, pada dasarnya membuat file log untuk subset unit. Bagaimana saya bisa melakukan itu?
arch-linux
systemd
logs
systemd-journald
Amr Bekhit
sumber
sumber
Jawaban:
Tampaknya ini tidak mungkin dan tidak diinginkan oleh upstream (mengarahkan stdout / stderr ke file individual) lihat misalnya http://lists.freedesktop.org/archives/systemd-devel/2012-March/004705.html - baca seluruh utas untuk lebih informasi konteks bagaimana ini dimaksudkan untuk bekerja.
Apa yang dapat Anda lakukan, adalah login ke syslog, dan dengan cara itu menulis ke file individual. Atau sebaliknya, jika unit memanggil beberapa program yang dapat menulis log itu sendiri, kemudian menggunakannya untuk masuk ke file.
Anda mungkin juga ingin melihat Lihat stdout / stderr dari layanan systemd
Apa yang sudah dapat Anda lakukan dengan pengaturan Anda saat ini, digunakan
journalctl -u yourunitname > yourlogfile_for_yourunitname
untuk mengarahkan seluruh output jurnal untuk unit Anda "nama panggilan" ke dalam file.
Pada bagian terakhir, Anda juga harus melihat petunjuk dari Lennart dari utas milis yang disebutkan di atas:
EDIT: Sebenarnya, untuk versi systemd yang lebih baru perintahnya hanya journalctl dan dari apa yang bisa saya katakan, perintah panjang yang disebutkan di atas adalah sama dengan
journalctl -u yourunitname
dan Anda juga dapat di-f
sana untuk "mengikuti" output (seperti dalam tailf atau tail -f).sumber