¿Cómo puedo iniciar sesión automáticamente en el escritorio con systemd?

¿Cómo puedo iniciar sesión automáticamente en el escritorio con systemd?

¿Cómo puedo configurar systemd para que inicie sesión automáticamente en mi entorno de escritorio, preferiblemente sin utilizar un administrador de inicio de sesión? Estoy usando Arch Linux.

Respuesta1

Esto se describe en elArchiwiki:

Cree un nuevo archivo de servicio similar a [email protected]copiándolo a/etc/systemd/system/

cp /usr/lib/systemd/system/[email protected] /etc/systemd/system/[email protected]

Básicamente, esto copia el archivo ya existente [email protected]en un nuevo archivo [email protected]que se puede modificar libremente. Se copia /etc/systemd/systemporque es donde se almacenan los archivos unitarios específicos del sitio. /usr/lib/systemd/systemcontiene archivos unitarios proporcionados por paquetes, por lo que no debes cambiar nada allí.

Luego tendrás que vincularlo simbólicamente [email protected]al servicio Getty para el tty en el que deseas iniciar sesión automáticamente, por ejemplo para tty1:

ln -s /etc/systemd/system/[email protected] /etc/systemd/system/getty.target.wants/[email protected]

Hasta ahora, sigue siendo el mismo [email protected]archivo habitual, pero la parte más importante es modificarlo [email protected]para que inicie sesión automáticamente. Para hacer eso, solo necesitas cambiar la ExecStartlínea para leer

ExecStart=-/sbin/agetty -a USERNAME %I 38400

La diferencia entre la ExecStartlínea in [email protected]y [email protected]es solo la -a USERNAMEque le dice a agetty que registre al usuario con el nombre de usuario NOMBRE DE USUARIO automáticamente.

Ahora sólo tienes que decirle a systemd que recargue sus archivos daemon e inicie el servicio:

systemctl daemon-reload
systemctl start [email protected]

(No estoy seguro de si el servicio se iniciará correctamente si ya ha iniciado sesión en tty1, probablemente la forma más segura sea simplemente reiniciar en lugar de iniciar el servicio).

Si luego desea iniciar X automáticamente, inserte el siguiente fragmento en su ~/.bash_profile(tomado dela wikide nuevo):

if [[ -z $DISPLAY ]] && [[ $(tty) = /dev/tty1 ]]; then
    exec startx
fi

Tendrá que modificar ~/.xinitrcsu entorno de escritorio para iniciar, cómo hacerlo depende del DE y probablemente también se describe en ArchWiki.

Respuesta2

OMI, elWiki ArcoActualmente recomienda una solución mucho más simple:

Ejecute el asistente ( systemctl edit getty@tty1) o haga lo que hice manualmente:

mkdir -p /etc/systemd/system/[email protected]/
touch /etc/systemd/system/[email protected]/override.conf

El texto que desea ingresar (por cualquiera de los métodos) es (asegúrese de cambiarnombre de usuarioadecuadamente):

[Service]
ExecStart=
ExecStart=-/usr/bin/agetty --autologin username --noclear %I $TERM

NOTA: ¡La línea vacía es importante! La línea vacía primero borrará la entrada ExecStart, mientras que la siguiente línea introducirá un nuevo comando ejecutivo.

Ahora, reinicie ( ) y sucederá shutdown -r 0algo parecido a donde previamente se bloqueó esperando la entrada de nombre de usuario/contraseña.... login: username (automatic login)


Una vez reiniciado e iniciado sesión automáticamente, si eres como yo y quieres ingresar SSH a este sistema ahora, probablemente necesites ejecutar:

systemctl enable sshd.service

Que creará el enlace simbólico (por ejemplo ln -s '/usr/lib/systemd/system/sshd.service' '/etc/systemd/system/multi-user.target.wants/sshd.service')

Respuesta3

Modifique directamente el archivo (que es un enlace simbólico a ):/etc/systemd/system/getty.target.wants/[email protected]/lib/systemd/system/getty@service

Agregar -a/--autologin USERNAMEa la línea:

ExecStart=-/sbin/agetty --noclear %I $TERM

Por eso:

ExecStart=-/sbin/agetty -a USERNAME %I $TERM

También puede eliminarlo -o '-p -- \\u'(como está presente en la instalación actual de Arch), ya que esto iniciaría el inicio de sesión USERNAMEpero aún solicitaría la contraseña.

Después de reiniciar, iniciará sesión automáticamente.

PDCambie el nombre del archivo [email protected]al que ttydesea iniciar sesión.

Respuesta4

También puede usar gettyel comando (get tty) que le permite iniciar sesión automáticamente con el usuario especificado, el argumento gettypuede ser --autologino -a, estoy ejecutando Linux Debian Ubuntu, así que no sé si este comando está disponible en otras distribuciones.

getty -a <user>

información relacionada