Red de conocimiento informático - Material del sitio web - Cómo apagar el servidor de socket Python desde la línea de comando en ubuntu

Cómo apagar el servidor de socket Python desde la línea de comando en ubuntu

Como se presenta en este artículo, en el sistema Solaris, después de reiniciar el servidor de socket Python, indica que el puerto está ocupado y el puerto telnet falla. Aquí hay una solución para que los amigos que lo necesiten puedan consultarla.

En el sistema Solaris, después de reiniciar el servidor de socket, se le indica que el puerto está ocupado y el puerto telnet no tiene éxito, lo que indica que el servicio se ha cerrado.

Puede ver a través de netstat que el puerto todavía está en el estado fin_wait_2 y que Solaris tarda 4 minutos en apagarse.

Cuando encuentre este problema, puede utilizar los siguientes métodos para resolverlo y reducir el tiempo de espera.

1, más s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1).

Código:

Copiar código Ejemplo de código:

self.host=socket.gethostbyname(socket.gethostname())

s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)

s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)

s.bind((self.host, self.port))

s.listen(5)

2. Modifique la configuración de hora del sistema fin_wait y time_wait. Cambiar este tiempo a uno más corto también beneficiará el rendimiento del sistema.

Método de modificación

Ver o configurar:

Use el comando get para determinar el intervalo de tiempo actual y use el comando set para especificar el intervalo de tiempo como 30 artículos de segunda clase.

Por ejemplo:

Copiar ejemplo de código:

ndd -get /dev/tcp tcp_time_wait_interval

ndd -set /dev/tcp tcp_time_wait_interval 30000

Valor predeterminado: para el sistema operativo Solaris, el intervalo de espera predeterminado es 240000 milisegundos (es decir, 4 minutos).

Valor recomendado: 60000 milisegundos.

Solaris TCP_FIN_WAIT_2_FLUSH_INTERVAL

Descripción:

Especifica el intervalo de temporizador que prohíbe que las conexiones en el estado FIN_WAIT_2 permanezcan en este estado.

Cuando la relación de conexión es alta, se acumulará una gran cantidad de conexiones TCP/IP, provocando que el rendimiento del servidor se degrade. Durante las horas pico, el servidor puede experimentar retrasos.

Si el servidor está retrasado, el comando netstat muestra que muchos sockets abiertos al servidor HTTP están en estado CLOSE_WAIT o FIN_WAIT_2.

Los retrasos notables pueden durar hasta 4 minutos, durante los cuales el servidor no puede enviar ninguna respuesta, pero la utilización de la CPU sigue siendo alta y toda la actividad se concentra en los procesos del sistema.

Ver y configurar:

Utilice el comando get para determinar el intervalo de tiempo actual y utilice el comando set para especificar el intervalo de tiempo en 67,5 segundos.

Por ejemplo: