何とかした方法
- ログを確認
- 再起動コマンドではなく、停止 → 起動、で解決
具体的な denyhosts が再起動できなかった症状
コマンドで再起動しようとしましたら、次のようにエラーとなってしまいました><
# /etc/init.d/denyhosts restart sent DenyHosts SIGTERM starting DenyHosts: /usr/bin/env python /usr/bin/denyhosts.py --daemon --config=/etc/denyhosts.conf DenyHosts could not obtain lock (pid: 9379) [Errno 17] File exists: '/var/lock/subsys/denyhosts' #
シャットダウンするべくシグナルは出したものの、起動ができないようです。
denyhosts のロックが得られなかったとあります。
ということはおそらく、停止のシグナルを出したものの、停止が完了する前に起動しようとしてできなかったのかしら?
ログ /var/log/denyhosts を確認してみましょう♪
「tail -200 /var/log/denyhosts」で適当な長さのログを見てみました。関係すると思われる箇所を抜粋いたします。
2014-08-24 10:04:33,718 - denyhosts : INFO DenyHosts daemon is shutting down
2014-08-24 10:04:33,744 - sync : ERROR 0
Traceback (most recent call last):
File "/usr/lib/python2.4/site-packages/DenyHosts/sync.py", line 117, in receive_new_hosts
self.__prefs.get("SYNC_DOWNLOAD_RESILIENCY"))
File "/usr/lib/python2.4/xmlrpclib.py", line 1096, in __call__
return self.__send(self.__name, args)
File "/usr/lib/python2.4/xmlrpclib.py", line 1383, in __request
verbose=self.__verbose
File "/usr/lib/python2.4/xmlrpclib.py", line 1131, in request
errcode, errmsg, headers = h.getreply()
File "/usr/lib/python2.4/httplib.py", line 1143, in getreply
response = self._conn.getresponse()
File "/usr/lib/python2.4/httplib.py", line 872, in getresponse
response.begin()
File "/usr/lib/python2.4/httplib.py", line 365, in begin
self.msg = HTTPMessage(self.fp, 0)
File "/usr/lib/python2.4/mimetools.py", line 16, in __init__
rfc822.Message.__init__(self, fp, seekable)
File "/usr/lib/python2.4/rfc822.py", line 106, in __init__
self.readheaders()
File "/usr/lib/python2.4/httplib.py", line 221, in readheaders
line = self.fp.readline()
File "/usr/lib/python2.4/socket.py", line 325, in readline
data = recv(1)
File "/usr/lib/python2.4/site-packages/DenyHosts/deny_hosts.py", line 114, in killDaemon
sys.exit(0)
SystemExit: 0
2014-08-24 10:04:33,786 - denyhosts : INFO /var/log/secure has been rotated
2014-08-24 10:04:33,922 - loginattempt: INFO resetting count for: XXX.XXX.XXX.XXX
2014-08-24 10:04:34,891 - denyhosts : INFO DenyHosts launched with the following args:
シャットダウン → サーバとの同期 → 起動、という順番で denyhosts が動いたように見えますわね。
ちなみに、同期とは以前行った次のことですの。
さらにログを読んでいくとシャットダウン後に同期しようとしたものの denyhosts が動いていないために同期が失敗した、でもその後起動には成功した、と思われます。
ですけれども念のためもう一度再起動いたしました。
# /etc/init.d/denyhosts stop sent DenyHosts SIGTERM # /etc/init.d/denyhosts start starting DenyHosts: /usr/bin/env python /usr/bin/denyhosts.py --daemon --config=/etc/denyhosts.conf #
今度はエラーも表示されず、これで一安心です♪
おわりに
エラーが発生して、調べようとしたとき、どのようなワードで検索すればよいかしら?少し迷いましたの。
結局「[Errno 17] File exists: ‘/var/lock/subsys/denyhosts’」で Google 検索いたしました。
pid ファイルを削除するんだ!という最終的に強引にそうするしかないかしら、と予想していた回答しか見あたりませんでした。
そこで腰を据えてじっくり対処いたしましょう!まずはログから!と思ったらすでに解決していた、、、というオチなのでした♪
以上です。
