este problema se puede abordar de variadas maneras, pero nosotros te damos la que en nuestra opinión es la resolución más completa.
Solución:
Edita tu /etc/systemd/logind.conf
cambio #NAutoVTs=6
a NAutoVTs=1
Crear un /etc/systemd/system/[email protected]/override.conf
mediante ;
systemctl edit [email protected]
Pega las siguientes lineas
[Service]
ExecStart=
ExecStart=-/sbin/agetty --autologin root --noclear %I 38400 linux
habilitar el [email protected]
luego reiniciar
systemctl enable [email protected]
reboot
Documentos de Arch Linux: getty
Me gustaría agregar una respuesta un poco más completa, especialmente dado el comentario sobre romper su sistema de @Keelan.
Primero, si desea tener solo un TTY que esté ejecutando el programa y no poder iniciar sesión en ningún otro tty, ENTONCES edite su /etc/systemd/logind.conf
y cambio #NAutoVTs=6
a NAutoVTs=1
. ¡Hacer esto evitará que inicies sesión en la terminal!
A continuación, cree un directorio y un override.conf
expediente:
mkdir -p /etc/systemd/system/[email protected]1.service.d
echo "[Service]" > /etc/systemd/system/[email protected]/override.conf
echo "ExecStart=" >> /etc/systemd/system/[email protected]/override.conf
echo "ExecStart=-/sbin/agetty --autologin root --noclear %I 38400 linux" >> /etc/systemd/system/[email protected]/override.conf
No reinicies. En lugar de reiniciar, como se describe en la otra respuesta, inicie sesión en otro TTY, luego ejecute los siguientes comandos para probar las cosas:
systemctl daemon-reload
systemctl restart [email protected]
Si todo va bien, reinicie.
Pero, ¿qué pasa si quiero ejecutar un programa en lugar de iniciar sesión automáticamente?
Entonces usarías lo siguiente:
mkdir -p /etc/systemd/system/[email protected]
echo "[Service]" > /etc/systemd/system/[email protected]/override.conf
echo "ExecStart=" >> /etc/systemd/system/[email protected]/override.conf
echo "ExecStart=-/path/program -arg1 -arg2" >> /etc/systemd/system/[email protected]/override.conf
echo "StandardInput=tty" >> /etc/systemd/system/[email protected]/override.conf
echo "StandardOutput=tty" >> /etc/systemd/system/[email protected]/override.conf
Ahora tenga en cuenta que esto se ejecutará sin un bashrc
. Esto significa que si usas algo como screen
entonces no obtendrá todos sus alias habituales/etc. Para solucionarlo, use el inicio de sesión automático estándar anterior, pero agréguelo a su .bashrc
:
[ `tty` == /dev/tty1 ] && /path/program -arg1 -arg2
Esto significa que el programa sólo se ejecutará en tty1
pero le dará un caparazón completo debajo.
Solo quiero agregar a esta discusión que la respuesta aceptada se refiere a terminales virtuales. En mi caso, tuve que editar un archivo de servicio separado que se usa para terminales en serie. El archivo se encuentra en /lib/systemd/system/[email protected]
y el mismo procedimiento de agregar --autologin
a la línea apropiada hace el truco.
[Service]
ExecStart=-/sbin/agetty --keep-baud 115200,38400,9600 --autologin root %I $TERM
Si conservas alguna sospecha o forma de medrar nuestro noticia te insinuamos realizar un paráfrasis y con mucho gusto lo estudiaremos.