Düzenle 2016-06-02
Genelde "Başlat günlük iletilerini" bulmaya çalışıyorsanız, işaretleyin /var/log/upstart/
. Upstart'ın kaydettiği stdout
ve stderr
Upstart hizmetlerinden burası . Leopard'ın bunu işaret ettiği cevabı sayesinde.
Upstart'ın kendisinden günlük mesajları arıyorsanız, bunlar tarafından yapılandırılmış initctl log-priority
ve yayılmış initctl emit
, okumaya devam edin!
Kısa versiyon
Günlük girişleri aslında dmesg'de görünmelidir. Buna rağmen, varsayılan olarak görünmüyorlar/var/log
.
Bunları /var/log
da istiyorsanız , $KLogPermitNonKernelFacility on
rsyslogd'ın config dosyasına ekleyin . Dpkg tarafından yönetildiği /etc/rsyslog.d/60-custom.conf
için düzenlemeyi önlemek gibi bir özel dosya oluşturmanızı öneririm /etc/rsyslog.conf
. Şimdi Sonradan görme mesajlar gösterilmesi gereken /var/log/syslog
size Sonradan görme en belirledikten sonra, log-priority
hiç info
ya da öylesine.
Uzun versiyon
Bu izini gün sürdü, ama görünüşe Sonradan görme (1.5) yok değil syslog oturum olduğunu, bu glibc işlevini çağırmaz syslog()
. Bunun yerine, Upstart, dmesg'in okuduğu çekirdek halka arabelleğine giriş yapar. Şimdi, kullanıcı alanı işlemlerinin bu ara belleğe yazmasının mümkün olduğunu düşünmedim , ancak görünüşe göre yazarak yapabilirler /dev/kmsg
ve bu tam olarak Upstart'ın yaptığı şeydi. Demek bulmacanın ilk kısmı bu.
İkinci bölüm, çekirdek halkası arabelleğine yazılan iletilerin çekirdek tarafından otomatik olarak syslog'a kopyalandığına dair bir inanç olduğudur (en azından hep düşündüğüm gibi). Bunun aslında, sloglog ile uyumlu çalışan geleneksel olarak klog olan bir kullanıcı alanı programı tarafından yapıldığı ortaya çıktı. Açıkçası rsyslogd, syslogd'un yerine geçiyor, fakat görünüşe göre, klogd'un yerini alıyor (tür: sonunda notlara bakınız).
Üçüncü bölüm, çekirdek halkası arabelleğine kullanıcı alanından yazılan iletilerin aslında çekirdek alandan yazılan iletilerden farklı göründüğüdür: farklı bir tesise sahiptirler. dmesg'in bununla etkileşime giren birkaç seçeneği var: -x
tesisi gösterecek (ve önceliği) -u
ve -k
dmesg'e sırasıyla kullanıcı tesis mesajlarını ve çekirdek tesis mesajlarını göstermesini söyleyecektir.
Şimdi burada kattığı: Varsayılan olarak, rsyslogd , çekirdek halkası arabelleğindeki mesajları okurken, çekirdek olmayan bir tesisteki mesajları yok sayar . İlgili yapılandırma seçeneği, $KLogPermitNonKernelFacility
varsayılan olarak kapalıdır ve rysyslogd'un bu mesajları işlemesini istiyorsanız, açılması gerekir. Rsyslogd'ın config komutunun, çekirdek halkası arabelleğindeki özelliklerinden kern
bağımsız olarak, çekirdek halkası arabelleğindeki tüm mesajları tesis olarak kabul edeceğini unutmayın .
Daha fazla bilgi
syslog
Kod syslog()
, içinde açıklanan glibc işlevini çağırarak syslog'a yazabilir man 3 syslog
. Görünüşe göre bu işlevler yazıyor /dev/log
. Kod, syslog'dan okuyarak okuyabilir /dev/log
ve bu da syslogd
onun yerine geçenlerin yaptığı şeydir . giriş modülünü kullanarak rsyslogd
okur ./dev/log
imuxsock
Çekirdek halkası tamponu
Çekirdek alanı, çekirdek işlevini çağırarak bu arabelleğe yazar, bu printk()
nedenle bazen printk arabelleği denir. Kullanıcı alanı yazarak ona yazabilir /dev/kmsg
. Kullanıcı alanı bu tampondan birkaç yöntemle okuyabilir: /proc/kmsg
(varsayılan olarak dmesg'in yaptığı şeyi) okuyabilir /dev/kmsg
veya okuyabilir veya syslog()
açıklanan glibc işlevinde açıklanan man 2 syslog
ve tamamen farklı olan sistem çağrısını çağırabilir. syslog()
içinde man 3 syslog
. glibc aslında bu karışıklığı hafifletmeye yardımcı olmak için syslog()
çağrılan sistem çağrısına bir sarmalayıcı sağlar klogctl()
.
Geleneksel olarak, klogd
bu arayüzlerden birinden okur, ardından syslog()
onları slog günlüğüne kopyalamak için glibc işlevini çağırır . rsyslogd bu arayüzlerden birini imklog
giriş modülünden okur, ancak AFAIK glibc'i çağırmaktan rahatsız olmaz syslog()
, bu yüzden tam olarak klogd'a benzemiyor; sadece çıkış işleyen imklog
herhangi bir başka giriş modülünden çıkış işlemleri gibi. Çekirdek halka tamponu içindeki tesis mesajlarından bağımsız olarak tüm imklog
çıkışın kern
tesise sahip olduğu ek bir uyarı vardır .
Referanslar
dmesg
ancak burada verilen bağlam olmadan bir anlamı yoktu.