カテゴリー
Linux

denyhosts が動いていない。→再起動だ!→再起動できない><。を何とかしました。

何とかした方法

  • ログを確認
  • 再起動コマンドではなく、停止 → 起動、で解決

具体的な 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 ファイルを削除するんだ!という最終的に強引にそうするしかないかしら、と予想していた回答しか見あたりませんでした。

そこで腰を据えてじっくり対処いたしましょう!まずはログから!と思ったらすでに解決していた、、、というオチなのでした♪

以上です。

コメントを残す