CTLINND(8)

名前
ctlinnd - InterNetNews デーモン制御

形式
ctlinnd [ -h ] [ -s ] [ -t timeout ] command [ argument... ]

機能説明
ctlinnd は InterNetNews サーバである innd(8) の control channel にメッセージを送ります。

通常の処理ではメッセージをサーバに送り、それによりサーバは要求された処理を行い、 テキストメッセージと ctlinnd のための終了コードの応答を送り返します。 サーバがコマンドを正常に処理すれば、 ctlinnd は 0 のステータスで終了し、標準出力に応答を出力します。 (例えば、存在しないニュースグループを削除するように要求されて) サーバがコマンドを処理できなければ、サーバは ctlinnd が 1 のステータスで終了するように応答します。 ``shutdown''、``xabort''、``xexec'' コマンドに対しては応答を出力しません。 この場合、 ctlinnd は常に 0 のステータスで何も表示せずに終了します。

オプション

-s  ``-s'' オプションを使用すると、コマンドが正常に終了すれば何も出力しません。

-t  サーバからの応答に対してどれだけ待ってタイムアウトするのかを指定するために ``-t'' オプションを使用することができます。 タイムアウトの値は待機している秒数で指定します。 0 という値を指定するとタイムアウトしなくなり、また 0 未満では応答を待ちません。 応答を待つ場合、 ctlinnd はサーバが起動中かどうかを確認するために 2 分おきにリトライします。 そのため、``-t0'' はハングアップすることはありません。 デフォルトでは ``-t0'' です。

-h  コマンドのサマリを確認するためには ``-h'' オプションを使用します。 ctlinnd が ``-h'' オプションにコマンド付きで起動されると、 そのコマンドの使用法のみが出力されます。

一度に大量のニュースグループを作成削除する場合、サーバを ``pause'' あるいは ``throttle'' し、 active ファイルを直接編集する方が ctlinnd によるニュースグループの作成削除処理よりも有効となり得ます。

コマンドの全リストを次に示します。 すべてのコマンドは決まった数の引数をとることに留意してください。 パラメータが空文字列となる場合には、"" のように連続した引用文字を指定する必要があります。

addhist <Message-ID> arr exp post paths
    history データベースにエントリを追加します。 これによりサーバに Message-ID のための行を作成させます。 角括弧(<>)は省略することができます。 arr 、 exp 、 post はそれぞれ、記事の到着した時刻、expire する時刻、ポストした時刻を指定します。 これら三つの値は 1970 年 1 月 1 日 00:00:00 UTC からの経過秒数になります。 記事に Expires ヘッダが無い場合、 exp は 0 でなければいけません。 paths は記事がスプールされるディレクトリへのパス名です。 記事がクロスポストされている場合、そのパス名はホワイトスペースで区切られなければいけなくて、 引数である paths はダブルクォート内になければいけません。 サーバが pause あるいは throttle 状態では、このコマンドにより history データベースをすぐにオープンします。

allow reason
    外部からのコネクションを許可します。 reason は先の ``reject'' コマンドで使用した同じテキストか空文字列でなければいけません。

begin site
    site へのフィードを開始します。 これにより、サーバは newsfeeds(5) を再検索し、指定したサイトを見つけ、そこへの配送のセットアップを行います。 サイトがすでに存在していれば、最初に ``drop'' が行われます。 このコマンドはフォワードされます。 コマンドの説明の後にある説明を参照してください。

cancel <Message-ID>
    ローカルシステムから指定した Message-ID の記事を削除します。 これにより、キャンセルのコントロールメッセージを生成することはありま せん 。 角括弧(<>)は省略可能です。 サーバが pause あるいは throttle 状態では、このコマンドにより history データベースをすぐにオープンします。

changegroup group rest
    group で指定されたニュースグループの active ファイルの第四フィールドを rest パラメータで指定された値に変更します。 これは例えばあるニュースグループを moderated にしたり、 しなかったりするために使用することができます。

checkfile
    newsfeeds ファイルの文法をチェックし、エラーがあればその旨のメッセージを表示します。 エラーの詳細は syslog(3) 経由で報告します。

drop site
    site を flush し、サーバの有効なエントリから削除します。 このコマンドはフォワードされます。 コマンドの説明の後にある説明を参照してください。

feedinfo site
    site への配送状態の詳細や site が空文字列であればすべての配送の状態を簡単に表示します。

flush site
    指定したサイトのバッファをフラッシュします。 サイトの feed のタイプにより、処理が決まります。 詳細は newsfeeds(5) を参照してください。 このコマンドはファイルやバッチのサイトが処理を始める場合に有用です。 site が空文字列の場合、すべてのサイトが flush され、 active ファイルや history データベースも一旦書き出します。 このコマンドはフォワードされます。 コマンドの説明の後にある説明を参照してください。

flushlogs
    ログとエラーログをクローズし、 .old という拡張子をもつ名前にリネームします。 history データベースや active ファイルも一旦書き出します。

go reason
    history データベースを再オープンし、``pause'' あるいは ``throttle'' コマンドの後で送られてきた記事を受け始めます。 reason は空文字列あるいは先の ``pause'' や ``throttle'' コマンドで使用したテキストに一致しなければいけません。 ``reject'' コマンドを行っていた場合、このコマンドにより reason が ``reject'' コマンドで使用したテキストに一致すれば ``allow'' コマンドも行います。 ``reserve'' コマンドを行っていた場合、このコマンドにより reason が ``reserve'' コマンドで使用したテキストに一致すれば予約した内容もクリアされます。 history データベースについてはサーバが pause あるいは throttle されている間に history データベースが変更されていても、``go'' コマンドを行う前に ``reload'' コマンドを行う必要は無いことに留意してください。 非常に多くの I/O エラーが積み重なってサーバ自身が throttle した場合、 このコマンドによってエラーカウントはリセットされます。 サーバが ``-n y'' オプションで起動されていなければ、このコマンドにより ``readers'' コマンドも ``yes'' を flag とし、 reason を text として同時に実行します。

hangup channel
    指定した入力チャネルのソケットをクローズします。 これは記事を受ける接続がハングアップしたような場合に有用です。

help [command]
    すべてのコマンドの一覧あるいは command が指定されていればそのコマンドについて表示します。

logmode
    サーバの現在の動作モードのログを syslog に書き込ませます。

mode
    サーバのパラメータや動作状態を複数行のサマリにしてサーバの動作モードを表示します。

name nnn
    チャネル番号 nnn の名前あるいはチャネル番号が空文字列であればすべてのチャネル番号の名前を表示します。

newgroup group rest creator
    指定したニュースグループを作成します。 rest パラメータは active(5) で説明してある第四フィールドでなければいけません。 また、これが ``='' でなければ最初の文字のみ使用されます。 creator はニュースグループを作成した人の名前(E-mail アドレス)でなければいけません。 ニュースグループがすでに存在している場合、このコマンドは ``changegroup'' コマンドと等価になります。 このコマンドのみデフォルトがあります。 creator は省略することができ、デフォルトでは空文字列で、 rest パラメータも省略することができ、デフォルトでは ``y'' になります。 このコマンドはサーバが pause あるいは throttle されていても実行することができ、 ``go'' コマンドを実行するとサーバ内部の状態を更新します。 このコマンドは active.times を更新します。 ( active(5) を参照してください。) このコマンドはフォワードされます。 コマンドの説明の後にある説明を参照してください。

param letter value
    サーバ起動時のパラメータを変更します。 letter は innd のコマンドラインのオプションで、 value は新しい値です。 例えば、``i 5'' によりサーバは 5 つまでのコネクションを許可します。 ``-n'' オプションの処理を有効にしたり無効にしたりするには value にそれぞれ ``y'' あるいは ``n'' を使用してください。

pause reason
    サーバを pause させて、記事の受け取りを停止します。 接続中のコネクションはクローズされませんが、history データベースはクローズされます。 このコマンドは history データベースの置き換えの時のように短期間サーバをロックさせるのに使用するべきです。 サーバが ``-ny'' オプションで起動されていなければ、このコマンドにより ``readers'' コマンドも ``no'' を flag とし、 reason を text として行います。

readers flag text
    ニュースリーダからの接続を許可したり不許可にしたりします。 flag が ``n'' という文字で始まっていれば、ニュースリーダからの接続は許可されなくなります。 このときサーバに text が渡されますが、これは nnrpd(8) の ``-r'' オプションでの値になります。 flag が ``y'' という文字で始まり、 text が空文字列かニュースリーダからの接続を不許可にしたときに使用したのと同じ文字列となっていれば、 ニュースリーダからの接続は許可されるようになります。

reject reason
    他のサーバからの接続( nnrpd に渡さないような)を reason で拒否します。

reload what reason
    サーバで使用しているさまざまな設定ファイルがコピーされているメモリの内容を更新します。 what はリロードすべきものを指定します。 これが空文字列あるいは ``all'' となっていれば、すべてをリロードします。 ``history'' となっていれば history データベースをクローズしオープンします。 ``hosts.nntp'' となっていれば hosts.nntp(5) ファイルをリロードします。 ``active'' あるいは ``newsfeeds'' となっていれば active と newsfeeds ファイルの両方をリロードします。 ``overview.fmt'' となっていれば overview.fmt(5) をリロードします。 reason は syslog に報告されます。 inn.conf(5) ファイルをリロードする方法はありません。 サーバが現在このファイルで使用しているのは ``pathhost'' パラメータのみであるため、 この制限は問題とはなりません。

renumber group
    指定したニュースグループのディレクトリをスキャンして、 active ファイルの最小記事番号と最大記事番号を更新します。 group が空文字列の場合、すべてのニュースグループについてスキャンして最小記事番号を更新します。

reserve reason
    後に続く ``pause'' あるいは ``throttle'' コマンドでは reason として reason を使用しなければいけません。 この ``予約'' は reason に空文字列を使用することによりクリアされます。 このコマンドは expire(8) のようなプログラムで、他のプロセスが同じ処理をしないようにするために使用します。

rmgroup group
    指定したニュースグループを削除します。 これは active ファイルを編集することにより行われます。 スプールのディレクトリに対しては何も行わず、このニュースグループの記事はデフォルトの expire のパラメータを使用して消去されます。 ``newgroup'' コマンドとは異なり、このコマンドは active.times ファイルを更新しません。 このコマンドはフォワードされます。 コマンドの説明の後にある説明を参照してください。

send feed text...
    指定した text を exploder feed に制御文として送ります。

shutdown reason
    指定した reason でサーバをシャットダウンします。 この reason はログに記録され、すべてのコネクションに対して送られます。 先に ``throttle'' コマンドを送るというのも良いアイデアでしょう。

signal sig site
    指定した site に sig というシグナルを送ります。 site は channel あるいは exploder feed でなければいけません。 sig はシグナル番号あるいは ``hup''、``int''、``term'' のような文字列とすることができます。 これが文字列の場合、大文字小文字は関係ありません。

throttle reason
    すべての接続をクローズし、新たな接続を拒否して記事の入力を throttle します。 history データベースはクローズされます。 このコマンドは expire が起動している場合のような長期間のロックに使用されます。 サーバが ``-n y'' オプションとともに起動されていなければ、このコマンドは ``readers'' コマンドも flag を ``no'' にし、text を reason として同時に実行します。

trace item flag
    指定した item についてのトレースの on や off を行います。 flag は on や off を行うための ``y'' や ``n'' という文字で始まらなければいけません。 item が番号で始まっていれば、指定した innd のチャネルについてのトレースの設定を行います。 このチャネルは NNTP の入力チャネルでなければいけません。 item が ``i'' という文字で始まっていれば、 innd についての通常のトレースの設定を行います。 item が ``n'' という文字で始まっていれば、これから起動する nnrpd でそれぞれ ``-t'' オプションを付けるかどうかの設定を行います。

xabort reason
    サーバは reason で指定した文字列をログに出力して、 abort(3) ルーチンを呼びます。

xexec path
    サーバにシャットダウンの処理の準備をさせて、exit せずに path で指定したパスをサーバが起動された引数で実行します。 path が ``innd'' となっていれば、 /usr/news/bin/innd が実行されます。 ``inndstart'' となっていれば /usr/news/bin/inndstart が実行されます。 path が空文字列であれば、``-p'' オプションとともに起動されていれば ``inndstart'' を、 ``-p'' オプションとともに起動されていなければ ``innd'' を起動します。 これら以外の値はエラーとなります。

サーバ内での処理に加えて、innd の各子プロセスにコマンドをフォワードします。 コマンドを受けるサイトが( buffchan(8) のような) exploder feed や exploder feed への funnel feed であれば、 コマンドはフォワードされます。 この場合、サーバは exploder feed のサイトに ctlinnd のコマンド名でコマンド行を送ります。 exploder feed への funnel feed のサイトで ``W'' flag ( newsfeed(5) を参照してください)にアスタリスク(``*'')が付いていれば、 そのサイト名がコマンドに追加され、そうでなければ引数は追加されません。

バグ
ctlinnd は inndcomm(3) ライブラリを使用しているためサーバからの応答は 4K バイトまでに制限されています。

履歴
InterNetNews 用に Rich $alz <rsalz@uunet.uu.net> により記述されました。

関連項目
active(5)、 expire(8)、 innd(8)、 inndcomm(3)、 inn.conf(5)、 newsfeeds(5)、 overview.fmt(5)