OSDN Git Service

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