¿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/system
porque es donde se almacenan los archivos unitarios específicos del sitio. /usr/lib/systemd/system
contiene 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 ExecStart
línea para leer
ExecStart=-/sbin/agetty -a USERNAME %I 38400
La diferencia entre la ExecStart
línea in [email protected]
y [email protected]
es solo la -a USERNAME
que 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 ~/.xinitrc
su 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 0
algo 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 USERNAME
a 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 USERNAME
pero 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 tty
desea iniciar sesión.
Respuesta4
También puede usar getty
el comando (get tty) que le permite iniciar sesión automáticamente con el usuario especificado, el argumento getty
puede ser --autologin
o -a
, estoy ejecutando Linux Debian Ubuntu, así que no sé si este comando está disponible en otras distribuciones.
getty -a <user>