							-*- Indented-text -*-
# CML Documents.
# Copyright 1993-1998 (C) SAITOH-Ely-Yasuhiro.
# All rights reserved.



マシンがダウンした場合に起こり得ること
**************************************
　CMLのドライバ群はファイルの排他を確保するために、ロックファイルを用います。

　また、cmdt は二重起動を防ぐために、cmdt.pid というファイルに自分の動作プ
ロセス番号を保存します。

　基本的にはCMLがなんらかの動作中でも signal を受信すると、ロックファイルな
どを削除して強制終了するように設計されています。

　が、処理系によっては、シグナルが正しく処理できないものがあるかもしれませ
ん。また、マシンが何らかの原因でハングアップしてしまったような場合にはロッ
クファイルが正しく削除されずに残ってしまう場合があり得ます。

　ロックファイルが残ったままの状態で CMLのドライバ群が起動されると、ロック
の確保ができるまでプロセスがリトライを続け、やがてプロセステーブルを食い潰
してしまうという事態が発生します。

　ロックファイルは MLの名前のディレクトリ配下の以下のファイルです。

	 .LOCK.lock
	 .seq.lock
	 .digest.lock

　また、ダイジェスト形式での配送希望者がリストにいる場合、正しく配送できな
くなってしまう場合も起こり得ます。

　上記のような現象が発生した場合、これらのファイルを手で削除して下さい。

　もし可能であれば、システムを起動する時（かつsendmail が起動される前に）、

	find ~cml -name .LOCK.lock   -a -exec rm -f {} \;
	find ~cml -name .seq.lock    -a -exec rm -f {} \;
	find ~cml -name .digest.lock -a -exec rm -f {} \;
	find ~cml -name cmdt.pid     -a -exec rm -f {} \;

などというコマンドを rc.local などに仕込んでおくことをおすすめします。

　3.0 以降のバージョンには、rc.cml という起動時スクリプトが添付されています。
可能であれば、sendmail 起動前に、このスクリプトが呼ばれるように設定してくだ
さい。
