FreeBSDで運用する(その10)
Kagemai::MySQLStore/PostgresStore→Kagemai::XMLFileStoreを行ったときに出力された/var/log/httpd-error.logは以下の通りである。
pmutex.rb:83:in `flock': closed stream (IOError) from pmutex.rb:83:in `unlock' : :
つまり、既にクローズされたファイルに対してunlockを実行したと言うことだ。
この点はI/Oクラスのclosed?メソッドを使用してエラーが発生しないようにした。
def unlock(mode = EX) sync = Thread.current[:sync] lockfile = Thread.current[:lockfile] unless lockfile.closed? then # ←追加 lockfile.flock(File::LOCK_UN) lockfile.close() sync.unlock(mode) end PMutex.release_sync(@lockfilename) end
これで、Kagemai::MySQLStore/PostgresStore→Kagemai::XMLFileStoreも成功するようになった。
いよいよメールの設定をすれば運用開始である。