GNU/Linux >> Belajar Linux >  >> Linux

redirect log layanan systemd ke file

Pengalihan

StandardOutput=file:/var/log/flume-ng/log1.log
StandardError=file:/var/log/flume-ng/log2.log

seperti yang didokumentasikan di sini:https://www.freedesktop.org/software/systemd/man/systemd.exec.html#StandardOutput=

Perhatikan bahwa dengan cara ini seluruh konten file log akan ditimpa setiap kali layanan dimulai ulang.

Lampirkan

Jika Anda ingin mempertahankan log file di antara restart layanan dan cukup tambahkan baris log baru ke dalamnya:

# Works only in systemd v240 and newer!
StandardOutput=append:/var/log/flume-ng/log1.log
StandardError=append:/var/log/flume-ng/log2.log

Jika systemd lebih lama dari v240, Anda dapat menggunakan:

ExecStart=/bin/sh -c 'exec /usr/bin/my_binary [arguments] >>/var/log/flume-ng/log1.log 2>>/var/log/flume-ng/log2.log'

exec berarti program shell akan diganti dengan my_binary program setelah mengatur pengalihan tanpa forking. Jadi tidak akan ada perbedaan dari menjalankan my_binary langsung setelah ExecStart= .


ExecStart=/usr/bin/nohup …

Ini salah. Singkirkan. Layanan ini tidak berjalan dalam sesi login interaktif. Tidak ada terminal pengontrol, atau pemimpin sesi, untuk mengirim sinyal hangup ke sana.

ExecStart=… &

Ini salah. Singkirkan. Ini bukan skrip shell. & tidak memiliki arti seperti cangkang khusus, dan dalam hal apa pun akan menjadi cara yang salah untuk memulai layanan.

StandardOutput=/var/log/flume-ng/log1.log
StandardError=/var/log/flume-ng/log2.log

Ini salah. Jangan gunakan ini. systemd sudah mengirim output standar dan kesalahan proses layanan ke jurnalnya, tanpa pengaturan seperti itu di unit layanan. Anda dapat melihatnya dengan

journalctl -e -u flume-ng.service


Untuk masuk ke file tanpa menimpa (system.d versi 240+ diperlukan):

StandardOutput=append:/var/log/flume-ng/log1.log
StandardError=append:/var/log/flume-ng/log2.log

atau

StandardOutput=append:/var/log/flume-ng/log.log
StandardError=inherit

Linux
  1. Jalankan Layanan Systemd Setelah Automount Tapi Setelah Diakses?

  2. Bagaimana cara menggunakan Systemd untuk memulai kembali layanan saat down?

  3. Cara mengarahkan output dari layanan systemd ke file

  1. Dalam file layanan systemd, bagaimana saya mengatakan setelah USB siap?

  2. membuat file log

  3. Apakah ada cara yang tepat untuk menghapus log?

  1. Kelola startup menggunakan systemd

  2. Temukan File Log Firefox?

  3. Layanan OS Linux 'syslog'