우분투 시스템의 Collectd servcie에서 Python 서버를 시작하려고 하면 오류가 발생합니까?

우분투 시스템의 Collectd servcie에서 Python 서버를 시작하려고 하면 오류가 발생합니까?

우분투 컴퓨터에 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 미만의 포트 번호를 사용하려면 루트 권한이 필요합니다. 1024보다 큰 포트의 경우에는 필요하지 않습니다.

관련 정보