추가 읽기

추가 읽기

/dev/log의 실제 용도는 무엇입니까? 인터넷 검색을 하면서 이것이 사용자 공간에서 Syslog로 로깅하는 데 사용된다는 것을 알게 되었습니다. 나는 /dev/kmsg가 이 역할에 적합하다고 생각합니다. 내가 뭐 놓친 거 없니?

노트:

test@test:~$ cat /dev/log
cat: /dev/log: No such device or address

답변1

설명은 다음과 같습니다 man syslogd.

   /dev/log
          The Unix domain socket to from where local syslog messages are read.

syslogdlogger다음과 같은 명령을 사용하여 사용법을 볼 수 있습니다 .

$ strace -f logger a 2>&1 | grep  /dev/log
connect(3, {sa_family=AF_UNIX, sun_path="/dev/log"}, 110) = 0

또는 lsof(사용 가능한 경우):

$ sudo lsof /dev/log
lsof: WARNING: can't stat() fuse.gvfsd-fuse file system /home/ja/.cache/gvfs
      Output information may be incomplete.
COMMAND PID USER   FD   TYPE             DEVICE SIZE/OFF  NODE NAME
syslogd 860 root    0u  unix 0x0000000003d863fa      0t0 18404 /dev/log type=DGRAM

다양한 시스템에는 여러 구현이 있습니다 syslogd. 예를 들어 Slackware는 sysklogd와 함께 제공되지만 다양한 임베디드 플랫폼에는 Busybox와 같은 자체 구현이 있습니다.

나는 당신도 혼란스러울 수 있다고 생각합니다 syslog(2).syslog(3)

$ man -k syslog | grep '^syslog '
syslog (2)           - read and/or clear kernel message ring buffer; set console_loglevel
syslog (3)           - send messages to the system logger

syslog(2)man syscallslibc API를 통해 사용되는 시스템 호출( 에도 나열되어 있음)입니다.dmesgklogctl커널 메시지 읽기 및/또는 지우기링 버퍼는 다음 용도 syslog(3)로 사용됩니다.보내다syslogd로 메시지가 전송되었습니다. 이 두 함수는 이름은 같지만 목적이 완전히 다르며 내부 작동 방식도 다릅니다.

답변2

  • /dev/logAF_LOCAL애플리케이션이 사용해야 하는 데이터그램 소켓(또는 심볼릭 링크)입니다.보내다데이터그램도착하다, 아니요읽다스트리밍 데이터~에서그리고 cat. 이는 C 라이브러리 및 해당 라이브러리 기능과 같은 기능에 대한 규칙이며 syslog()Linux 자체의 일부는 아닙니다. 그 판독기는 syslog-readsyslog 변형 중 하나 와 같은 데몬 이거나 systemd-journald.
  • /dev/kmsg스트리밍 장치입니다애플리케이션이 소비할 것으로 예상되는 Linux 순환 메시지 버퍼의 내용을 제공하는 Linux의 일부다음에서 읽기정상적인 상황에서는 커널 로그 데이터를 얻기 위해 실제 쓰기가 수행되지 않습니다. 일반적인 판독기는 syslog 변형 중 하나인 , 와 같은 dmesg프로그램 및 데몬 입니다 .klog-readklogdsystemd-journald

추가 읽기

관련 정보