UbuntuシステムのCollectd servcieでPythonサーバーを起動しようとするとエラーが発生しますか?

UbuntuシステムのCollectd servcieでPythonサーバーを起動しようとするとエラーが発生しますか?

UbuntuコンピュータにCollectdをインストールしました。 Python サーバーはデフォルトでインストールされます。すべてのシステム指標をブラウザにプッシュするには、Collectdを使用する必要があります。これを行うには、Pythonサーバーを実行する必要があります。ただし、実行しようとするとエラーが発生します。

助けてください。

以下は私のコードです

#!/usr/bin/env python

import CGIHTTPServer
import BaseHTTPServer
from optparse import OptionParser

class Handler(CGIHTTPServer.CGIHTTPRequestHandler):
    cgi_directories = ["/cgi-bin"]

PORT = 8888

def main():
    parser = OptionParser()
    opts, args = parser.parse_args()
    if args:
        httpd = BaseHTTPServer.HTTPServer((args[0], int(args[1])), Handler)
        print "Collectd-web server running at http://%s:%s/" % (args[0], args[1])
    else:
        httpd = BaseHTTPServer.HTTPServer(("127.0.0.1", PORT), Handler)
        print "Collectd-web server running at http://%s:%s/" % ("0.0.0.0", PORT)
    httpd.serve_forever()

if __name__ == "__main__":
    main()

私がコマンドを実行するとpython runserver.py

私が得た結果は次のとおりです。

Traceback (most recent call last):
  File "runserver.py", line 24, in <module>
    main()
  File "runserver.py", line 19, in main
    httpd = BaseHTTPServer.HTTPServer(("127.0.0.1", PORT), Handler)
  File "/usr/lib/python2.7/SocketServer.py", line 417, in __init__
    self.server_bind()
  File "/usr/lib/python2.7/BaseHTTPServer.py", line 108, in server_bind
    SocketServer.TCPServer.server_bind(self)
  File "/usr/lib/python2.7/SocketServer.py", line 431, in server_bind
    self.socket.bind(self.server_address)
  File "/usr/lib/python2.7/socket.py", line 228, in meth
    return getattr(self._sock,name)(*args)
socket.error: [Errno 98] Address already in use
[1]+  Exit 127                runserver.py

答え1

errorで明らかですAddress already in use。これは、指定されたインターフェース/ポートを受信する他のプログラムがすでに存在することを意味します。

ポート(8888)を受信する他のプログラムがないことを確認してください。次のことができます。

netstat -plnt | grep 8888

プロセスを停止します。

それ以外の場合は、ポート番号を変更してください。また、1024 未満のポート番号を使用するには、root 権限が必要です。 1024より大きいポートの場合は必要ありません。

関連情報