Eu gostaria de acrescentar uma resposta um pouco mais completa, especialmente considerando o comentário sobre a quebra do sistema dele no @Keelan.
Primeiro, se você deseja ter apenas um TTY que esteja executando o programa e não conseguir fazer login em outro tty, ENTÃO edite seu /etc/systemd/logind.conf
e altere #NAutoVTs=6
para NAutoVTs=1
. Isso impedirá que você faça login no terminal!
Em seguida, crie um diretório e um arquivo override.conf
:
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=-/sbin/agetty --autologin root --noclear %I 38400 linux" >> /etc/systemd/system/[email protected]/override.conf
Não reinicialize. Em vez de reinicializar, conforme descrito na outra resposta, faça o login em outro TTY e, em seguida, execute os seguintes comandos para testar as coisas:
systemctl daemon-reload
systemctl restart [email protected]
Se tudo correr bem, reinicie.
Mas e se eu quiser executar um programa em vez de autologin?
Então você usaria o seguinte:
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
Agora, lembre-se de que isso será executado sem um bashrc
. Isso significa que se você usar algo como screen
, você não obterá todos os seus aliases habituais / etc. Para corrigir isso, use o login automático padrão acima, mas adicione isso ao seu .bashrc
:
[ 'tty' == /dev/tty1 ] && /path/program -arg1 -arg2
Isso significa que o programa só será executado em tty1
, mas fornecerá uma concha completa por baixo.
Espero que isso ajude!