Mis sesiones de SSH parecen estar cayendo, aunque ese no es mi problema principal: el problema principal es que mis sesiones anteriores todavía están vivas, peor aún, una de ellas se está ejecutando ¡ visudoevitando que acceda a ellas!
who muestra una cantidad de sesiones, todas excepto la actual que sé que se ha desconectado, ¿cómo puedo finalizar las antiguas para liberar sus recursos?

fuser -k /dev/pts/0lo que sea que aparezca el terminal en lawhosalida. Sin embargo, un poco raro todos esos SIGHUP ignorados. ¿Estaban corriendo en unascreensesión o algo así?who), ¡gracias!Respuestas:
Para resolver el problema inmediato, que el archivo sudoers está bloqueado, simplemente puede eliminar el archivo de bloqueo. Por lo general, será `/etc/sudoers.tmp"; revise la página del manual para verudo para verificar. Si elimina el archivo de bloqueo, puede volver a ejecutar visudo.
Para eliminar todas las sesiones que aún quedan pendientes, primero averigüe el pid de su propia sesión actual. Entonces, si tu propio pid es 12345, haz
Es posible que desee hacerlo sin el último final
| shsolo para verificar los PID que planea matar.Si estás en Linux, puedes usar
matar tu sesión SSH más antigua. Continúe haciendo eso hasta que su sesión actual sea la única que quede.
También es posible que desee configurar
ServerAliveInterval 15en.ssh/configenviar un mensaje de alerta cada 15 segundos cuando no se hayan enviado datos.man ssh_configpara más información.fuente
grep -v 12345parte de la sintaxis. pasar todo lo que no contiene12345?grep -v 12345significa "eliminar cualquier línea que coincida12345con la coincidencia". Por lo tanto, primero debe identificar el PID de su propia sesión y usar ese PID en lugar de12345.whootopaún mostrar el número antiguo de usuarios firmados, incluso debería mostrar solo 1. ¿Cómo se puede forzar a que se actualice?Si enumera los procesos para ver sus comandos y argumentos (como, por ejemplo,
ps -fde procps), debería ver los procesos sshd llamados, por ejemplo:El terminal (
pts/7) es la parte clave aquí: si lo compara con su terminal actual (tty), puede ver cuál es su sesión activa. Por supuesto, hay otras formas de hacerlo (como mirar el PID del shell actualmente en ejecución y ubicarlo en el árbol de procesos), pero esta es probablemente la más fácil. Luego puede usar algo en estas líneas:Luego puede alimentar los PID para matar,
xargspero siempre asegúrese de no matar elsshdproceso principal que maneja las nuevas conexiones .En una nota relacionada, tenga en cuenta que, en general, la
pssalida de análisis es propensa a errores (especialmente en varios sistemas) debido a la variabilidad de sus formatos de salida (aquí mitigados en gran medida por el uso de-o pid= -o command=).fuente
Esto matará las sesiones suspendidas por más de 2 días. Se podría poner como un cron.
Esto matará a todos menos a tu (última sesión activa). Ejecuta esto desde la terminal.
fuente