信頼できるソースはカーネル内の実装であるため、最初にそれを見てみましょう。
panic
sysctl
のエントリ panic_timeout
というカーネル変数に対応 .これは符号付き整数であり、次のようにパニック時の動作を制御するために使用されます:
- if
panic_timeout
厳密に正の場合、カーネルはパニック後にpanic_timeout
待機します 秒; - if
panic_timeout
ゼロ以外の場合、カーネルはパニック後に再起動します (適切な場合は待機後); - カーネルが再起動していない場合、メッセージが出力され、永遠にループします。
したがって、マンページは正しく、カーネル自体のドキュメントは不完全でした。しかし sysctl/kernel.rst
panic
を文書化するようになりました さらに詳細に。これは、カーネルのバージョン 5.7-rc1 で修正されました。
<ブロック引用>
なぜそんなのか 信頼できる情報源は そのような 誤解を招く情報?
まず、誤解を招くというよりも、誤解を招く可能性があります。結論に飛びつきます。 kernel.org は特別なケース「0」を無視していると思います。
kernel.org の詳細がわからない 、しかし本質的には公式のカーネル Documentation/
の混合です (ウェブ形式、グループ化)、およびいくつかの追加情報。最良の例は、彼らが言うように、さまざまな場所から「収集」されたブートパラメーターリストです。
「kernel.org」では、「その他のリソース」の下に「ドキュメント」リンクがリストされています。 doc/html/latest/
に移動します . /doc
の下に、さまざまなリンクの袋もあります。 .
(スフィンクス形式の) ドキュメントの冒頭で、次のように書かれています:
<ブロック引用>カーネル ドキュメントは、カーネル自体と同様、進行中です。;多くの散在するドキュメントを統合する作業を行っているため、これは特に当てはまります。 一貫した全体に。ドキュメントの改善は大歓迎です。;...
man 5 proc
man-pages
の一部です プロジェクト (またはパッケージ) であり、それを維持している book-to-stun-an-ox を持ったこの男がいます。これらのページはすべて末尾にサブタイトル(セクション)として「COLOPHON」があります。それらはまた異種であり、一部は収集されたばかり (すべての POSIX "1p" ページ) であり、一部はギャップを埋めるために書かれています。
man7.org で Kerrisk 氏の作品を直接見ることができます -- 私は彼が良い仕事をしていると思います。彼の本は販売していますが、オープン ソースのマニュアル ページのコレクションを維持しています。
この場合、彼はより正確です。もちろん、どちらも関連しているように見えます ("When you...device driver... 60")。
<ブロック引用>私たち 私たちのを統合するために働きます 多くの散らばったドキュメントを一貫した全体にまとめます。
これは半分の意味しかありません。誰の書類が散らばっていた 、そして誰によって?
私の疑似コードは次のようになります:
if timeout > 0 then loop for 'timeout' seconds
if timeout != 0 then reboot
loop for ever
つまり、負の値はすぐに再起動し、正の値は両方の ifs が true であることを意味します。そして、ゼロは最終ループに直接つながります。