Tratando de entender el comando "w" en macOS

0

Actualmente, estoy aprendiendo un comando de UNIX y encontré varias preguntas inexplicables. Gracias por su respuesta.

  1. Cuando ejecuto el comando w Desde la terminal, recibí algunos mensajes que se muestran en la imagen de abajo. Lo sé s000 representa el terminal en el que escribí el comando w. Pero estoy confundido acerca de la tty cuyo nombre es console y por lo cual, dijo, me conecté al sistema. Y dijo que console Había estado inactivo durante algún tiempo. Puedo cambiar a console ¿Activar este tty para dejar de estar inactivo?

  2. También realicé otro experimento tratando de dar inicio al usuario invitado que estaba iniciando sesión. Sabía que podía matar el proceso de bash que estaba ejecutando el invitado, pero de alguna manera tengo un problema al matar al console el invitado estaba corriendo ¿Cómo puedo iniciar completamente el invitado sin reiniciar la computadora? No puedo matar al console. La raíz de este problema es prácticamente la misma que la primera: ¿qué significa "consola"? Absolutamente no representa el terminal en el que escribí el comando w.

  3. Este problema también se puede encontrar en un sistema Linux como Ubuntu 14.04, este último con el nombre de console con numero como 0 o 1. Me pregunto qué significa 0 o 1 en la columna tty. Pero puedo estar seguro de que tienen un significado similar con console.

here is the image

Han XIAO
fuente
¿Cómo se conectó el usuario invitado?
Scott
@Scott: Yo, el superusuario, inicie sesión a través de la interfaz gráfica proporcionada por Mac cuando arranca, no a través de la línea de comandos o no a través de inicio de sesión distante. El invitado inicia sesión de la misma manera que inicio de sesión (por la interfaz de inicio de sesión): cambio la cuenta y uso la misma interfaz gráfica para iniciar sesión en el invitado, no a través de la terminal. De la respuesta de G-Man, la consola representa el proceso que mantiene la interfaz de la ventana. ¿Es posible que cierre la interfaz de la ventana del invitado? Cuando lo probé en ubuntu, cuando mato el proceso de inicio de usuario para el invitado, también mata el proceso de inicio de usuario para el superusuario.
Han XIAO

Respuestas:

0

No estoy familiarizado con macOS, pero espero que los conceptos sean bastante similares a los de Linux. Esto es algo así como una simplificación excesiva, pero básicamente, en este contexto, La "consola" se refiere a toda la computadora. O, para ser algo más específico, La pantalla y los dispositivos de entrada humanos. (teclado, dispositivo (s) señalador (es), etc.) (Los inicios de sesión de red están excluidos de la "consola".)

Cuando inicia sesión en su computadora (localmente, no a través de la red), estás iniciando sesión en la consola.

Ahora, obviamente, estás familiarizado con las terminales. ventanas en las que puedes ejecutar comandos, como ls y w. Cuando inicia sesión en la consola, ejecuta automáticamente un comando (o un grupo de comandos) eso te da la interfaz de ventana a la que estás acostumbrado. Algunos sistemas operativos hacen visible el mecanismo por el cual esto sucede, e incluso a veces ajustables; otros lo hacen por completo "bajo el capó".

Dado que la consola no ejecuta ningún comando, excepto el propio sistema de ventanas, parece estar inactivo En la mayoría de los sistemas operativos (y espero que macOS sea uno de ellos), Lo único que se hizo para cambiar a la consola es salir del sistema de ventanas. pero eso lo regresa a la consola, que luego lo desconecta automáticamente.

Hay otra arruga:

  • los w el comando lee un archivo del sistema, formatea los datos muy bien para que una persona los mire, y lo escribe en la salida estándar.
  • Una entrada se escribe en el archivo cada vez que alguien inicia sesión en la consola o a través de la red. Algunos sistemas (¿la mayoría? Todos?) También escriben una entrada cuando el usuario en la consola inicia una nueva ventana de terminal.
  • Las entradas normalmente se borran cuando un usuario cierra la sesión o cierra una ventana de terminal.
  • La palabra clave en la viñeta anterior es "normalmente". En algunos casos, si mata un proceso (especialmente si lo hace como superusuario), puede interferir con el mecanismo que borra los datos antiguos. Así, w podría reportar información que ya no es válida.

Si no sabes usar ps, deberias aprender. Puedes usarlo en lugar de w, pero probablemente es mejor usarlos juntos. Utilizar w para darle una hoja de ruta de lo que debe buscar en el ps salida. No creas ciegamente todo w Te dijo; cree solo la información que puedas verificar con ps. Por ejemplo, si ha eliminado todos los procesos "invitados", y w todavía dice que "invitado" está conectado, probablemente te está dando información obsoleta e inválida


Usted podría encontrar ¿Cuál es la diferencia entre shell, consola, y terminal? y Cual es la diferencia exacta entre un 'terminal', un 'shell', un 'tty' y una 'consola'? Para que valga la pena leer.

G-Man
fuente
Gracias. Curiosamente, cuando lo probé en Ubuntu, creo que puede funcionar para matar el proceso de inicio de usuario. Cuando lo maté, yo, el superusuario, también me vi obligado a cerrar sesión y volví a la interfaz gráfica de inicio de sesión cuando se inicia el sistema. Luego volví a iniciar sesión como superusuario, ejecuté el comando w, y aún encontré que la "consola" o tty con nombre de número para el invitado aún se está ejecutando, lo que significa que el invitado todavía está conectado y el proceso de interfaz con ventanas para el El invitado sigue trabajando. Parecía que el proceso de la interfaz de ventana para el usuario y el invitado está unido. Solo quiero matar al de invitado.
Han XIAO