.\" -*- coding: UTF-8 -*- '\" t .\" Copyright (C) 1995 Andries Brouwer (aeb@cwi.nl) .\" and Copyright (C) 2012, 2014 Michael Kerrisk .\" .\" SPDX-License-Identifier: Linux-man-pages-copyleft .\" .\" Written 11 June 1995 by Andries Brouwer .\" 2008-02-15, Jeremy Kerr .\" Add info on command type 10; add details on types 6, 7, 8, & 9. .\" 2008-02-15, Michael Kerrisk .\" Update LOG_BUF_LEN details; update RETURN VALUE section. .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH syslog 2 "17 ноября 2024 г." "Linux man\-pages 6.12" .SH НАИМЕНОВАНИЕ syslog, klogctl \- читает и/или очищает кольцевой буфер сообщений ядра; устанавливает console_loglevel .SH БИБЛИОТЕКА Standard C library (\fIlibc\fP,\ \fI\-lc\fP) .SH ОБЗОР .nf \fB#include \fP /* определения констант \fBSYSLOG_*\fP */ \fB#include \fP /* определения констант \fBSYS_*\fP */ \fB#include \fP .P \fBint syscall(SYS_syslog, int \fP\fItype\fP\fB, char *\fP\fIbufp\fP\fB, int \fP\fIsize\fP\fB);\fP .P /* интерфейс glibc */ \fB#include \fP .P \fBint klogctl(int \fP\fItype\fP\fB, char *\fP\fIbufp\fP\fB, int \fP\fIsize\fP\fB);\fP .fi .SH ОПИСАНИЕ \fIЗамечание\fP: Вероятно, вы ищете библиотечную функцию Си \fBsyslog\fP(), которая описана в \fBsyslogd\fP(8); подробности смотрите в \fBsyslog\fP(3). .P В этой странице описана системный вызов ядра \fBsyslog\fP(), который используется для управления буфером \fIprintk\fP() в ядре; обёрточная функция glibc для данного системного вызова называется \fBklogctl\fP(). .SS "Буфер журнала ядра" .\" Under "General setup" ==> "Kernel log buffer size" .\" For Linux 2.6, precisely the option seems to have appeared in Linux 2.5.55. The kernel has a cyclic buffer of size \fBLOG_BUF_LEN\fP in which messages given as arguments to the kernel function \fBprintk\fP() are stored (regardless of their log level). In early kernels, \fBLOG_BUF_LEN\fP had the value 4096; from Linux 1.3.54, it was 8192; from Linux 2.1.113, it was 16384; since Linux 2.4.23/2.6, the value is a kernel configuration option (\fBCONFIG_LOG_BUF_SHIFT\fP, default value dependent on the architecture). Since Linux 2.6.6, the size can be queried with command type 10 (see below). .SS Команды В аргументе \fItype\fP задаётся действие функции. Далее приводится список со всеми значениями \fItype\fP. Символические имена определены в исходном коде ядра, но не экспортируются в пользовательское пространство; вы должны использовать или номера, или определить имена самостоятельно. .TP \fBSYSLOG_ACTION_CLOSE\fP (0) Закрыть журнал. Ничего не делает. .TP \fBSYSLOG_ACTION_OPEN\fP (1) Открыть журнал. Ничего не делает. .TP \fBSYSLOG_ACTION_READ\fP (2) Читать из журнала. Вызов ждёт пока в буфере журнала ядра что\-нибудь не появится и затем записывает максимум \fIlen\fP байт в буфер, указанный \fIbufp\fP. Вызов возвращает количество прочитанных байт. Байты, прочитанные из журнала, исчезают из буфера журнала: информацию можно прочесть только один раз. Эта функция используется ядром когда пользовательская программа читает файл \fI/proc/kmsg\fP. .TP \fBSYSLOG_ACTION_READ_ALL\fP (3) Читать все сообщения, оставшиеся в кольцевом буфере, помещая их в буфер, указанный в \fIbufp\fP. Вызов читает последние \fIlen\fP байт из буфера журнала (не разрушая его), но не больше, чем было записано в буфер с момента вызова команды «очистка кольцевого буфера» (смотрите команду 5 далее). Вызов возвращает количество прочитанных байт. .TP \fBSYSLOG_ACTION_READ_CLEAR\fP (4) Прочитать и стереть все сообщения, оставшиеся в кольцевом буфере. Вызов выполняет то же самое, что и при \fItype\fP равном 3, но ещё вызывает команду «очистка кольцевого буфера». .TP \fBSYSLOG_ACTION_CLEAR\fP (5) The call executes just the "clear ring buffer" command. The \fIbufp\fP and \fIsize\fP arguments are ignored. .IP Эта команда на самом деле не очищает кольцевой буфер. Вместо этого она изменяет переменную учёта в ядре, которая определяет результат, возвращаемый командами 3 (\fBSYSLOG_ACTION_READ_ALL\fP) и 4 (\fBSYSLOG_ACTION_READ_CLEAR\fP). Эта команда не влияет на команды 2 (\fBSYSLOG_ACTION_READ\fP) и 9 (\fBSYSLOG_ACTION_SIZE_UNREAD\fP). .TP \fBSYSLOG_ACTION_CONSOLE_OFF\fP (6) .\" commit 1aaad49e856ce41adc07d8ae0c8ef35fc4483245 Данная команда сохраняет текущее значение \fIconsole_loglevel\fP и затем устанавливает \fIconsole_loglevel\fP равным \fIminimum_console_loglevel\fP, что приводит к отключению вывода сообщений на консоль. До Linux 2.6.32, эта команда просто изменяла \fIconsole_loglevel\fP на \fIminimum_console_loglevel\fP. Смотрите описание \fI/proc/sys/kernel/printk\fP далее. .IP The \fIbufp\fP and \fIsize\fP arguments are ignored. .TP \fBSYSLOG_ACTION_CONSOLE_ON\fP (7) .\" commit 1aaad49e856ce41adc07d8ae0c8ef35fc4483245 Если ранее выполнялась команда \fBSYSLOG_ACTION_CONSOLE_OFF\fP, то эта команда восстанавливает значение \fIconsole_loglevel\fP, которое было сохранено. До Linux 2.6.32 эта команда просто изменяла \fIconsole_loglevel\fP на \fIdefault_console_loglevel\fP. Смотрите описание \fI/proc/sys/kernel/printk\fP ниже. .IP The \fIbufp\fP and \fIsize\fP arguments are ignored. .TP \fBSYSLOG_ACTION_CONSOLE_LEVEL\fP (8) The call sets \fIconsole_loglevel\fP to the value given in \fIsize\fP, which must be an integer between 1 and 8 (inclusive). The kernel silently enforces a minimum value of \fIminimum_console_loglevel\fP for \fIsize\fP. See the \fIlog level\fP section for details. The \fIbufp\fP argument is ignored. .TP \fBSYSLOG_ACTION_SIZE_UNREAD\fP (9) (начиная с Linux 2.4.10) The call returns the number of bytes currently available to be read from the kernel log buffer via command 2 (\fBSYSLOG_ACTION_READ\fP). The \fIbufp\fP and \fIsize\fP arguments are ignored. .TP \fBSYSLOG_ACTION_SIZE_BUFFER\fP (10) (начиная с Linux 2.6.6) This command returns the total size of the kernel log buffer. The \fIbufp\fP and \fIsize\fP arguments are ignored. .P .\" .\" All commands except 3 and 10 require privilege. In Linux kernels before Linux 2.6.37, command types 3 and 10 are allowed to unprivileged processes; since Linux 2.6.37, these commands are allowed to unprivileged processes only if \fI/proc/sys/kernel/dmesg_restrict\fP has the value 0. Before Linux 2.6.37, "privileged" means that the caller has the \fBCAP_SYS_ADMIN\fP capability. Since Linux 2.6.37, "privileged" means that the caller has either the \fBCAP_SYS_ADMIN\fP capability (now deprecated for this purpose) or the (new) \fBCAP_SYSLOG\fP capability. .SS \fI/proc/sys/kernel/printk\fP Файл \fI/proc/sys/kernel/printk\fP доступен на запись и содержит 4 целочисленных значения, которыми управляется поведение ядерного \fIprintk()\fP при печати или протоколировании сообщений об ошибках. Четыре значения: .TP \fIconsole_loglevel\fP .\" since Linux 2.4 Only messages with a log level lower than this value will be printed to the console. The default value for this field is \fBDEFAULT_CONSOLE_LOGLEVEL\fP (7), but it is set to 4 if the kernel command line contains the word "quiet", 10 if the kernel command line contains the word "debug", and to 15 in case of a kernel fault (the 10 and 15 are just silly, and equivalent to 8). The value of \fIconsole_loglevel\fP can be set (to a value in the range 1\[en]8) by a \fBsyslog\fP() call with a \fItype\fP of 8. .TP \fIdefault_message_loglevel\fP .\" commit 5af5bcb8d37f99ba415a1adc6da71051b84f93a5 Это значение будет использовано как уровень протоколирования сообщений \fIprintk()\fP, у которых уровень не указан. До версии Linux 2.6.38 включительно это поле содержало неизменяемое значение 4 (\fBKERN_WARNING\fP); начиная с Linux 2.6.39, значение по умолчанию задаётся в параметре настройки ядра \fBCONFIG_DEFAULT_MESSAGE_LOGLEVEL\fP и по умолчанию равно 4. .TP \fIminimum_console_loglevel\fP Значение этого поля — минимальное значение, которое может быть указано в \fIconsole_loglevel\fP. .TP \fIdefault_console_loglevel\fP .\" .\" Это значение по умолчанию для \fIconsole_loglevel\fP. .SS "Уровень протоколирования" Каждое сообщение \fIprintk\fP() имеет свой уровень протоколирования. Если уровень протоколирования явно не задан в сообщении, то по умолчанию оно равно \fIdefault_message_loglevel\fP. Для удобства имеются следующие уровни протоколирования: .TS lB lB lB lB c l. Ядерные постоянные Уровень Смысл \fBKERN_EMERG\fP 0 Система не пригодна к использованию \fBKERN_ALERT\fP 1 T{ Необходимо немедленно принять меры T} \fBKERN_CRIT\fP 2 Условная паника \fBKERN_ERR\fP 3 Условные ошибки \fBKERN_WARNING\fP 4 Условные предупреждения \fBKERN_NOTICE\fP 5 T{ Обычное, но важное условие T} \fBKERN_INFO\fP 6 Информационное сообщение \fBKERN_DEBUG\fP 7 Cообщения уровня отладки .TE .P Ядерная процедура \fIprintk()\fP печатает сообщение на консоль только, если его уровень протоколирования меньше значения \fIconsole_loglevel\fP. .SH "ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ" При успешном выполнении и если \fItype\fP равно 2, 3 или 4, \fBsyslog\fP() возвращает количество прочитанных байт. При \fItype\fP равном 9, \fBsyslog\fP() возвращает количество байт, доступных для чтения из кольцевого буфера ядра. При \fItype\fP равном 10, \fBsyslog\fP() возвращает полный размер кольцевого буфера ядра. При других значениях \fItype\fP и успешном выполнении возвращается 0. .P При ошибке возвращается \-1, а переменной \fIerrno\fP присваивается номер ошибки. .SH ОШИБКИ .TP \fBEINVAL\fP Bad arguments (e.g., bad \fItype\fP; or for \fItype\fP 2, 3, or 4, \fIbuf\fP is NULL, or \fIsize\fP is less than zero; or for \fItype\fP 8, the \fIlevel\fP is outside the range 1 to 8). .TP \fBENOSYS\fP Системный вызов \fBsyslog\fP() недоступен, так как ядро было собрано с отключённым параметром \fBCONFIG_PRINTK\fP. .TP \fBEPERM\fP Процесс, не имеющий необходимых прав (мандата \fBCAP_SYS_ADMIN\fP или \fBCAP_SYSLOG\fP), пытался изменить \fIconsole_loglevel\fP или очистить кольцевой буфер сообщений ядра. .TP \fBERESTARTSYS\fP Системный вызов был прерван сигналом; ничего не было прочитано (может быть замечено только при трассировке). .SH СТАНДАРТЫ Linux. .SH ИСТОРИЯ .\" In libc4 and libc5 the number of this call was defined by .\" .BR SYS_klog . .\" In glibc 2.0 the syscall is baptized .\" .BR klogctl (). С самого начала многим не нравится, что вызов ядра и библиотечная функция с одинаковыми именами делают совершенно разные вещи. .SH "СМОТРИТЕ ТАКЖЕ" \fBdmesg\fP(1), \fBsyslog\fP(3), \fBcapabilities\fP(7) .PP .SH ПЕРЕВОД Русский перевод этой страницы руководства разработал(и) Alexander Golubev , Azamat Hackimov , Hotellook, Nikita , Spiros Georgaras , Vladislav , Yuri Kozlov , Иван Павлов и Kirill Rekhov . .PP Этот перевод является свободной программной документацией; он распространяется на условиях общедоступной лицензии GNU (GNU General Public License - GPL, .UR https://www.gnu.org/licenses/gpl-3.0.html .UE версии 3 или более поздней) в отношении авторского права, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ. .PP Если вы обнаружите какие-либо ошибки в переводе этой страницы руководства, пожалуйста, сообщите об этом разработчику(ам) по его(их) адресу(ам) электронной почты или по адресу .MT списка рассылки русских переводчиков .ME .