Forma de cerrar la sesión de un usuario desde la línea de comandos en OS X 10.9

25

Quiero cerrar sesión en mi Mac OS X desde la línea de comandos. Mi versión de OS X es 10.9. Intenté el comando pkill -KILL -u uid , pero este comando no funcionó. ¿Hay algún comando que se pueda usar para cerrar la sesión de un usuario del sistema usando solo la línea de comandos, no AppleScript ?

    
pregunta prateeak ojha 07.04.2014 - 15:21

7 respuestas

25

Para cerrar la sesión exclusivamente desde el terminal (o una sesión remota de ssh), simplemente finalice el proceso de inicio de sesión:

sudo pkill loginwindow

Puede ser sofisticado y especificar el usuario si varios usuarios tienen un proceso de inicio de sesión, pero esta es una manera fácil, no hay una manera rápida de finalizar la sesión gráfica de un usuario.

    
respondido por el bmike 07.04.2014 - 18:47
22

sudo launchctl bootout gui/$(id -u <username>)
o
sudo launchctl bootout user/$(id -u <username>)

Reemplace el nombre de usuario con el nombre de usuario del usuario de destino o reemplace toda la subshell con el uid del usuario. Esto le indica a launchctl que elimine la sesión de inicio de sesión de los usuarios (gui se refiere específicamente a la sesión de inicio de sesión temporal del usuario, el usuario especifica los procesos de fondo de los usuarios).

Puedes cerrar sesión sin el sudo para probar esto.

Tenga en cuenta que SOLO esto funcionará en macOS 10.11.x o más reciente (consulte launchctl help para obtener más información)

    
respondido por el Iain Henderson 14.03.2016 - 17:16
14

Esto me ha funcionado en el pasado:

Cerrar sesión (con confirmación)

osascript -e 'tell app "System Events" to log out'

Cerrar sesión directamente (sin confirmación)

osascript -e 'tell app "System Events" to  «event aevtrlgo»'

o

osascript -e 'tell application "loginwindow" to  «event aevtrlgo»'

De esta manera, cualquier aplicación en ejecución se notará y podrá terminar de manera segura.

    
respondido por el nohillside 07.04.2014 - 15:30
2

Si tienes varios usuarios ....

Encuentre la ID del proceso con:

ps aux|grep login

Luego termina ese proceso y has cerrado la sesión. Pero quedan muchos procesos.

Verifique con pstree para saber qué proceso finalizar.

    
respondido por el Hugo van der Kooij 26.11.2014 - 14:23
2

Esto hace el truco por mí.

sudo -s

Para obtener algunos privilegios de root y el símbolo #, luego elimine los procesos.

killall -vu username -HUP

Y si no todo se ha ido. Nuke em! Advertencia obligatoria: matar cosas como root no se puede deshacer y no "¿está seguro de que desea interrumpir este proceso sin guardar sus archivos, incluidas las bases de datos críticas del sistema que podrían hacer que la máquina no se pueda arrancar en raras ocasiones". escriba advertencias.

killall -vu username -9
    
respondido por el tovare 10.05.2015 - 23:54
1

Una buena utilidad para agregar a su Terminal es el comando "cerrar sesión", que se utiliza como:

logout UserName

Aquí el cómo:

  1. Edita tu .bash_profile

    nano ~/.bash_profile

  2. Añade esta línea:

    logout() {sudo launchctl bootout user/$(id -u "$1")}

  3. Guarde el archivo presionando ctrl+x

  4. Reinicia el terminal

Estás listo para ir;)

    
respondido por el Kappe 18.10.2018 - 19:54
-3

si has iniciado sesión con ssh en una computadora remota, puedes cerrar sesión simplemente escribiendo 'exit':

[host:~user]$ exit
    
respondido por el holbein 09.01.2016 - 13:11

Lea otras preguntas en las etiquetas