何とかした方法
- ログを確認
- 再起動コマンドではなく、停止 → 起動、で解決
具体的な 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 ファイルを削除するんだ!という最終的に強引にそうするしかないかしら、と予想していた回答しか見あたりませんでした。
そこで腰を据えてじっくり対処いたしましょう!まずはログから!と思ったらすでに解決していた、、、というオチなのでした♪
以上です。