OSDN Git Service

(split) LDP: Restore and add Copyrights for draft pages
[linuxjm/LDP_man-pages.git] / draft / man2 / syslog.2
1 .\" Copyright (C) 1995 Andries Brouwer (aeb@cwi.nl)
2 .\"
3 .\" %%%LICENSE_START(VERBATIM)
4 .\" Permission is granted to make and distribute verbatim copies of this
5 .\" manual provided the copyright notice and this permission notice are
6 .\" preserved on all copies.
7 .\"
8 .\" Permission is granted to copy and distribute modified versions of this
9 .\" manual under the conditions for verbatim copying, provided that the
10 .\" entire resulting derived work is distributed under the terms of a
11 .\" permission notice identical to this one.
12 .\"
13 .\" Since the Linux kernel and libraries are constantly changing, this
14 .\" manual page may be incorrect or out-of-date.  The author(s) assume no
15 .\" responsibility for errors or omissions, or for damages resulting from
16 .\" the use of the information contained herein.  The author(s) may not
17 .\" have taken the same level of care in the production of this manual,
18 .\" which is licensed free of charge, as they might when working
19 .\" professionally.
20 .\"
21 .\" Formatted or processed versions of this manual, if unaccompanied by
22 .\" the source, must acknowledge the copyright and authors of this work.
23 .\" %%%LICENSE_END
24 .\"
25 .\" Written 11 June 1995 by Andries Brouwer <aeb@cwi.nl>
26 .\" 2008-02-15, Jeremy Kerr <jk@ozlabs.org>
27 .\"     Add info on command type 10; add details on types 6, 7, 8, & 9.
28 .\" 2008-02-15, Michael Kerrisk <mtk.manpages@gmail.com>
29 .\"     Update LOG_BUF_LEN details; update RETURN VALUE section.
30 .\"
31 .\"*******************************************************************
32 .\"
33 .\" This file was generated with po4a. Translate the source file.
34 .\"
35 .\"*******************************************************************
36 .\"
37 .\" Japanese Version Copyright (c) 1997 HANATAKA Shinya
38 .\"         all rights reserved.
39 .\" Translated Mon Dec 16 11:16:34 JST 2001
40 .\"         by HANATAKA Shinya <hanataka@abyss.rim.or.jp>
41 .\" Updated Thu Mar 6 2003 by Akihiro MOTOKI <amotoki@dd.iij4u.or.jp>
42 .\" Updated 2005-09-06, Akihiro MOTOKI <amotoki@dd.iij4u.or.jp>
43 .\" Updated 2008-04-04, Akihiro MOTOKI, LDP v2.79
44 .\" Updated 2008-07-31, Akihiro MOTOKI, LDP v3.05
45 .\" Updated 2012-04-30, Akihiro MOTOKI <amotoki@gmail.com>
46 .\" Updated 2012-05-29, Akihiro MOTOKI <amotoki@gmail.com>
47 .\" Updated 2013-05-06, Akihiro MOTOKI <amotoki@gmail.com>
48 .\"
49 .TH SYSLOG 2 2012\-11\-29 Linux "Linux Programmer's Manual"
50 .SH 名前
51 syslog, klogctl \- カーネルのメッセージ・リング・バッファを読んだり消去したりする; console_loglevel の設定を行う
52 .SH 書式
53 .nf
54 \fBint syslog(int \fP\fItype\fP\fB, char *\fP\fIbufp\fP\fB, int \fP\fIlen\fP\fB);\fP
55 \fB/* glibc ではラッパー関数は提供されていない */\fP
56 .sp
57 /* glibc のインタフェース */
58 .br
59 \fB#include <sys/klog.h>\fP
60 .sp
61 \fBint klogctl(int \fP\fItype\fP\fB, char *\fP\fIbufp\fP\fB, int \fP\fIlen\fP\fB);\fP
62 .fi
63 .SH 説明
64 (\fBsyslogd\fP(8) と話す) C ライブラリ関数の \fBsyslog\fP() が必要な場合は、
65 \fBsyslog\fP(3) を見ること。この名前のシステム・コールはカーネルの
66 \fIprintk\fP() バッファを制御するものであり、glibc ラッパー関数は
67 \fBklogctl\fP() と呼ばれている。
68 .SS "カーネル・ログ・バッファ (kernel log buffer)"
69 .\" Under "General setup" ==> "Kernel log buffer size"
70 .\" For 2.6, precisely the option seems to have appeared in 2.5.55.
71 カーネルは長さ \fBLOG_BUF_LEN\fP の巡回式のバッファを持っており、 それにはカーネル関数の \fBprintk\fP()
72 の引き数として与えられた メッセージが (そのログレベルにかかわらず) 格納される。 初期のカーネルでは \fBLOG_BUF_LEN\fP の値は 4096
73 であった。 カーネル 1.3.54 からは 8192、 カーネル 2.1.113 からは 16384 になり、 カーネル 2.4.23 以降および
74 2.6 以降ではカーネル設定オプション (\fBCONFIG_LOG_BUF_SHIFT\fP)
75 で値を設定できるようになっている。最近のカーネルでは、コマンド 10 (下記参照) でバッファのサイズを問い合わせできる。
76 .SS コマンド
77 \fItype\fP 引き数はこの関数が行う動作を決定する。 以下のリストに示す値を \fItype\fP に指定できる。
78 シンボル名はカーネルソースで定義されているが、ユーザ空間には公開されていない。 したがって、数字を使うか、名前を自分で定義する必要がある。
79 .TP 
80 \fBSYSLOG_ACTION_CLOSE\fP (0)
81 ログをクローズする。現在のところ NOP である。
82 .TP 
83 \fBSYSLOG_ACTION_OPEN\fP (1)
84 ログをオープンする。現在のところ NOP である。
85 .TP 
86 \fBSYSLOG_ACTION_READ\fP (2)
87 ログを読み出す。 この呼び出しは、 カーネル・ログ・バッファが空でなくなるまで待って、 最大 \fIlen\fP バイトまで \fIbufp\fP
88 が指すバッファに読み込み、 読み込んだバイト数を返す。 ログから読まれたバイトはログ・バッファから消える。 つまり、情報は一度しか読むことができない。
89 これはユーザーのプログラムが \fI/proc/kmsg\fP を読んだ時にカーネルによって実行される関数でもある。
90 .TP 
91 \fBSYSLOG_ACTION_READ_ALL\fP (3)
92 リング・バッファに残っているメッセージをすべて読み出し、 \fIbufp\fP が指すバッファに格納する。 この呼び出しログ・バッファの最後の \fIlen\fP
93 バイトを (非破壊的に) 読み出すが、 最後の「リング・バッファ消去」命令 (下記のコマンド 5 参照)
94 以降にバッファに書き込まれた情報しか読み出せない。 返り値は読み込んだバイト数である。
95 .TP 
96 \fBSYSLOG_ACTION_READ_CLEAR\fP (4)
97 リング・バッファに残っているメッセージをすべて読み出し、クリアする。 この呼び出しは \fItype\fP 3
98 と全く同じことを行い、追加で「リング・バッファ消去」 ("clear ring buffer") コマンドも実行する。
99 .TP 
100 \fBSYSLOG_ACTION_CLEAR\fP (5)
101 「リング・バッファ消去」 (\"clear ring buffer\") コマンドのみを実行する。 引き数 \fIbufp\fP と \fIlen\fP
102 は無視される。
103 .IP
104 このコマンドは実際にリング・バッファをクリアするわけではなく、 コマンド 3 (\fBSYSLOG_ACTION_READ_ALL\fP) と 4
105 (\fBSYSLOG_ACTION_READ_CLEAR\fP で返す内容を決定するカーネルの管理変数を設定する。 このコマンドはコマンド 2
106 (\fBSYSLOG_ACTION_READ\fP) と 9 (\fBSYSLOG_ACTION_SIZE_UNREAD\fP) には影響を与えない。
107 .TP 
108 \fBSYSLOG_ACTION_CONSOLE_OFF\fP (6)
109 printk のコンソールへの出力を無効にする。 コンソールのログレベルを最小に設定し、 コンソールにメッセージが出力されないようにする。 引き数
110 \fIbufp\fP と \fIlen\fP は無視される。
111 .TP 
112 \fBSYSLOG_ACTION_CONSOLE_ON\fP (7)
113 コンソールのログレベルをデフォルトに設定し、 コンソールにメッセージが表示されるようにする。 引き数 \fIbufp\fP と \fIlen\fP は無視される。
114 .TP 
115 \fBSYSLOG_ACTION_CONSOLE_LEVEL\fP (8)
116 コンソールのログレベルを \fIlen\fP で指定された値に設定する。 \fIlen\fP は 1 以上 8 以下の整数でなければならない。 詳細は
117 \fBログレベル (loglevel)\fP の節を参照のこと。 引き数 \fIbufp\fP は無視される。
118 .TP 
119 \fBSYSLOG_ACTION_SIZE_UNREAD\fP (9) (Linux 2.4.10 以降)
120 コマンド 2 (\fBSYSLOG_ACTION_READ\fP) でカーネル・ログ・バッファから読み出せるバイト数を返す。 引き数 \fIbufp\fP と
121 \fIlen\fP は無視される。
122 .TP 
123 \fBSYSLOG_ACTION_SIZE_BUFFER\fP (10) (Linux 2.6.6 以降)
124 カーネル・ログ・バッファの全体のサイズを返す。 引き数 \fIbufp\fP と \fIlen\fP は無視される。
125 .PP
126 コマンド種別 3 と 10 以外のコマンドは全て特権が必要である。
127 バージョン 2.6.37 より前の Linux カーネルでは、
128 コマンド種別 3 と 10 は非特権プロセスも呼び出すことができる。
129 Linux 2.6.37 以降では、\fI/proc/sys/kernel/dmesg_restrict\fP が値 0 の場合に限り、
130 非特権プロセスはこれらのコマンドを呼び出すことができる。
131 Linux 2.6.37 より前では、「特権を持つ (privileged)」とは呼び出し者が
132 \fBCAP_SYS_ADMIN\fP ケーパビリティを持つことを意味する。
133 Linux 2.6.37 以降では、「特権を持つ」とは呼び出し者が
134 \fBCAP_SYS_ADMIN\fP ケーパビリティか
135 (新しい) \fBCAP_SYSLOG\fP ケーパビリティのいずれかを持つことを意味する
136 (この目的で \fBCAP_SYS_ADMIN\fP ケーパビリティを使うのは今は非推奨である)。
137 .SS "ログレベル (loglevel)"
138 カーネル・ルーチンの \fBprintk\fP()  は、ログレベルが \fIconsole_loglevel\fP
139 変数より小さいときにのみ、コンソールにメッセージを表示する。 \fIconsole_loglevel\fP は最初
140 \fBDEFAULT_CONSOLE_LOGLEVEL\fP (7) に設定されるが、起動時にカーネルの コマンド・ライン・オプションに "debug"
141 という単語が含まれている場合は 10 に設定され、カーネル・フォールトが発生した場合には 15 に設定される (但し、10 や 15
142 という数字に意味はなく、8 と同等である)。 この変数は \fItype\fP が 8 の \fBsyslog\fP() の呼び出しによって設定され、値の範囲は
143 1\-8 である。 \fItype\fP が 6 もしくは 7 の \fBsyslog\fP() の呼び出しの場合、 console_loglevel は 1
144 (カーネル・パニックのみ)、 7 (デバッグ・メッセージ以外の全て) にそれぞれ設定される。
145
146 メッセージの各行はそれぞれにログレベルを持つ。このログレベルは \fIDEFAULT_MESSAGE_LOGLEVEL \- 1\fP (6) であるが、
147 <d> (\fId\fP は 1\-7 の範囲の数字) で始まる行の ログレベルは \fId\fP である。 ログレベルの慣習的な意味は
148 \fI<linux/kernel.h>\fP に以下のように定義されている:
149
150 .nf
151 #define KERN_EMERG    "<0>"  /* システムが使用不能         */
152 #define KERN_ALERT    "<1>"  /* 直ちに対処が必要            */
153 #define KERN_CRIT     "<2>"  /* 致命的な状態                  */
154 #define KERN_ERR      "<3>"  /* エラー状態                     */
155 #define KERN_WARNING  "<4>"  /* 警告状態                        */
156 #define KERN_NOTICE   "<5>"  /* 通常状態だが大事な情報           */
157 #define KERN_INFO     "<6>"  /* 通知                              */
158 #define KERN_DEBUG    "<7>"  /* デバッグレベルの情報        */
159 .fi
160 .SH 返り値
161 \fItype\fP が 2, 3, 4 の場合、成功すると \fBsyslog\fP()  は読み出したバイト数を返す。 \fItype\fP が 9 の場合、
162 カーネル・ログ・バッファにある現在読み出し可能なバイト数を返す。 \fItype\fP が 10 の場合、 カーネル・ログ・バッファの総量を返す。
163 \fItype\fP がそれ以外の値の場合、成功すると 0 が返される。
164
165 エラーの場合は、\-1\ が返り、 \fIerrno\fP にエラーを示す値が設定される。
166 .SH エラー
167 .TP 
168 \fBEINVAL\fP
169 不正な引き数 (具体的には、 \fItype\fP が正しくない、もしくは \fItype\fP が 2, 3, 4 の場合に \fIbuf\fP が NULL か
170 \fIlen\fP が 0 未満である、もしくは \fItype\fP が 8 の場合に \fIlevel\fP が 1 以上 8 以下の範囲に入っていない)。
171 .TP 
172 \fBENOSYS\fP
173 カーネルの設定オプション \fBCONFIG_PRINTK\fP を無効にしてカーネルがコンパイルされているため、 \fBsyslog\fP()
174 システムコールが利用できない。
175 .TP 
176 \fBEPERM\fP
177 十分な権限を持たないプロセス (正確にはケーパビリティ \fBCAP_SYS_ADMIN\fP も
178 \fBCAP_SYSLOG\fP も持たないプロセス) が console_loglevel を変更しようとしたか、
179 カーネル・メッセージ・リングを消去しようとした。
180 .TP 
181 \fBERESTARTSYS\fP
182 システム・コールがシグナルによって割り込まれ、何も読み出せなかった。 (トレース中にしか発生することはない)
183 .SH 準拠
184 このシステム・コールは Linux 特有であり、移植を意図したプログラムでは 使用してはいけない。
185 .SH 注意
186 .\" In libc4 and libc5 the number of this call was defined by
187 .\" .BR SYS_klog .
188 .\" In glibc 2.0 the syscall is baptized
189 .\" .BR klogctl ().
190 かなり初期の頃から、同じ名前を持つシステムコールとライブラリルーチンが
191 全く異なる別物であるのは不幸なことだと指摘されてきた。
192 .SH 関連項目
193 \fBsyslog\fP(3), \fBcapabilities\fP(7)
194 .SH この文書について
195 この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.53 の一部
196 である。プロジェクトの説明とバグ報告に関する情報は
197 http://www.kernel.org/doc/man\-pages/ に書かれている。