Saya sangat tertarik dengan ini untuk melihat output dari layanan oneshot yang berjalan pada timer. The --unit
flag dekat, tapi merangkai semua berjalan layanan bersama-sama. Cara paling jelas yang dapat saya pikirkan adalah menyaring PID, tetapi itu membuat saya khawatir tentang penggunaan kembali PID / layanan yang bercabang, dan mendapatkan PID terakhir cukup merepotkan. Apakah ada pengenal lain yang sesuai dengan satu kali menjalankan layanan, yang bisa saya gunakan untuk menyaring log?
EDIT: Saya akan dengan senang hati menerima "tidak" yang otoritatif jika itu jawaban yang sebenarnya.
sumber
journalctl --user -u UNITFILE -f -o json-pretty
mungkin bisa membantu; Anda sedang mencariMESSAGE
bidang khususnya. Saya menemukan bahwa Anda mungkin juga perluUSER_INVOCATION_ID
, dan juga beberapa pesan tidak memiliki id doa yang menyertainya, jadi tidak dapat difilter melalui mekanisme ini. Tidak yakin mengapa, mungkin penebangan saya salah konfigurasi ..Saya tidak yakin cap waktu mana yang paling masuk akal tetapi ini bekerja untuk saya. Mudah-mudahan ada cara yang lebih baik untuk bekerja dengan stempel waktu dari
systemctl show
awk - tidak bisa mengetahui cara mengontrol format stempel waktu.sumber
systemctl show -p ActiveEnterTimestamp thermo.service | awk '{print $2 \" \" $3}'
" -fu thermo.service | kurangsystemctl show -p ActiveEnterTimestamp --value $unit
, jadi tidak perlu awk tambahanAnda dapat menggunakan flag boot untuk mengambil hanya log dari boot itu. contohnya
sumber
Ini mungkin membantu Anda:
jurnalctl -u foo.service | ekor -n 2
atau ganti 2 dengan jumlah garis yang diharapkan
jurnalctl -u foo.service --since = ' 2016-04-11 13:00:00 '
Anda juga dapat menggabungkannya untuk mendapatkan cap waktu waktu jalankan terakhir, dan kemudian menggunakan stempel waktu itu dengan --since switch.
sumber
Anda dapat menggunakan filter bidang dengan Journalctl. Misalnya
Dapatkan daftar semua bidang yang tersedia menggunakan:
Satu bidang yang tersedia adalah
_PID
.Anda bisa mendapatkan PID dari proses yang berjalan menggunakan
pidof
atausystemctl show --property MainPID <SERVICE_NAME>
Jadi, inilah cara saya mendapatkan log dari proses kubelet Kubernet saat ini:
Sekarang beritahu saya mengapa saya Kubernetes sangat sulit untuk menginstal :-(
sumber
jurnalctl -r | grep -m1 foo.service
sumber