Situación

Situación

Situación

He configurado un entorno donde los usuarios pueden iniciar sesión desde múltiples puntos finales y usar tmux, screen... de modo que cuando finalicen su trabajo puedan cerrar sesión en su sesión ssh, lo que no elimina ningún proceso guardado en ningún multiplexor de terminal, pueden hacerlo. a pkill -u ${USER}o killall -u ${USER}para matar todos sus procesos, para eso envuelvo la función dentro de un script llamado fulllogout.

Problema

Cuando se ejecuta pkill -u ${USER}o killall -u ${USER}, el proceso de eliminación puede eliminarse a sí mismo o a su shell antes de eliminar todos los demás procesos, lo que da como resultado que algún proceso se mantenga vivo.

¿Cómo puedo hacerlo con éxito sin permitir derechos elevados?

Respuesta1

kill -TERM -1enviará SIGTERM a cada proceso para el que tenía permiso para hacerlo (excepto pid 1), de la misma manera kill -KILL -1 eliminará todo lo posible. Esto se hace en una única llamada al sistema, por lo que no puede suprimirse a mitad de camino.

información relacionada