Updated on 1998/12/3
このドキュメントでは、italkサーバーitalk+バージョン0.90[COWBERRY]の運用について説明します。 italkの概要や使い方に関しては、italkホームページを参照してください。 italk+バージョン0.8x以前の運用については、当該バージョンのアーカイブ中のitalk-server.htmlを参照してください。 また、italk+の変更履歴は、italk+変更履歴を参照してください。
UNIX系OS、Windows 9x/NT(Cygwin必須)、BeOSで動作します。 コンパイルには標準C(ANSI C)対応コンパイラが必要です。 詳しくはcowberry.txtを参照してください。 ただし、開発・運用は主にFreeBSD 2.xとSunOS 4.xで行っていますので、 それ以外のプラットフォームでは十分にテストしていません。
起動時の書式は以下の通りです。
italk-server [-dhP] [-l logdir] [-p port] [-r URL] [-A hrs] [-I mins] [-M admin] [-U hrs]
起動すると、ログディレクトリにロックファイル(italk-server.pid)を作り、そこにプロセスIDを記録します。 kill-italkによってサーバーを停止するとこのファイルは消されます。
以下のオプションを指定できます。 大文字のオプションは特殊な場合以外は使用する必要はありません。 -hも-rも指定しない場合は、 refuse.shtmlをログディレクトリに置いてください。
基本的にはメンテナンスフリーで動作しますが、 以下のような点に注意してください。
使用する文字コード系は以下の通りです。
上り(クライアント→サーバー) *junet*または*euc-japan* 下り(サーバー→クライアント) *euc-japan*dos ログファイル *junet*unix 伝言ファイル *euc-japan*unix 内部処理 *euc-japan*
下りや内部処理のコードは*euc-japan*ですが、 日本語EUCに含まれない文字は*junet*に倣ったエンコーディングとなります。
firewallなどがない限り、IP reachableであれば世界中どこからでも参加できます。 発言には注意してください。
文字化けを直すなどの理由でその日のログファイルを直接編集する場合は、 italk+を一旦停止するか、翌日になってからにしてください。 なお、ログを編集すると/rnの巻き戻し位置がずれる場合があります。
不適切な宛先へ伝言を残すと、読まれない伝言ファイルがたまってしまいます。 適宜/mlでチェックするとよいでしょう。
italk+はプログラム的に堅牢性はあまり考慮されていません。 極端に長い行やおかしなコードを送ったりしないようにしてください。
italk+がダウンした場合は、手動で再起動してください。 あるいは、以下のようにcronで定期的に再起動をかけるという方法もあります。
1,11,21,31,41,51 * * * * $HOME/italk/italk-server -h -l $HOME/italk > /dev/null 2>&1
ついでに、以下のように記述しておくと、 その日のログと前日のログをそれぞれtoday.italk、 yesterday.italkというファイル名でいつでも参照できるようになります。
0 0 * * * cd $HOME/italk; mv today.italk yesterday.italk; ln -s `date +\%y-\%m-\%d`.italk today.italk
italk+はユーザー数に応じてファイル(ソケット)記述子を消費します。 システムリソースの制限に注意してください。
italk+の動作・運用に関係するファイルは以下の通りです。
| ファイル名 | 内容 | 備考 |
|---|---|---|
| kill-italk | サーバー停止スクリプト | |
| index.shtml | HTTPサービスの案内 | -h指定時必要 |
| refuse.shtml | HTTP接続拒否通知 | デフォルトで必要 |
| ファイル名 | 内容 | 備考 |
|---|---|---|
| *.italk | ログファイル | *junet*unix |
| *.msg | 表伝言ファイル | *euc-japan*unix |
| *.umsg | 裏伝言ファイル | *euc-japan*unix |
| *.ann | アナウンスファイル | *euc-japan*unix |
| italk-server.pid | ロックファイル | 旧italk-server.lock |
| wtmp | ユーザー情報ファイル | バイナリ |
kill-italkを実行すると、italk+は停止します。
停止は、サーバープロセスにSIGTERMを送ります。 環境変数ITALK_LOGDIRで示されるログディレクトリ(未設定時はカレントディレクトリ)のロックファイルからプロセスIDを取得します。 ロックファイルがない場合はpsの出力からプロセスIDを取得します。
BeOSではkillteamをインストールしておく必要があります。
UNIXのtelnet(1)を始め、各種telnetクライアントをitalkのクライアントとして使用することができます。 ただし、文字コードの設定に注意してください。 とくに、受信日本語コードをEUCにしておかないと日本語がまったく読めません。 また、italk+はtelnetプロトコルの特殊文字を解釈せずに捨ててしまいますので、 モード変更などはうまく動作しないおそれがあります。
専用クライアントについては、italk関連プロジェクト一覧[クライアント]を参考にしてください。