Run software on the tty1 console instead of getty login on Ubuntu 14.04 and 16.04

Table of Contents

Recently I wanted to change the default login prompt on the tty1 console on an OpenStack instance to automatically run htop. Instead of logging in via the console, I wanted it to start up htop right away and nothing else. Ubuntu 14.04 uses init and Ubuntu 16.04 uses systemd. Both ways are shown in this tutorial.

Do note that you loose the ability to login via the regular console this way. ssh is your only means of access. Do note that the software is run as root. If you for example want to run vim you also can escape to a shell. htop as far as I know doesn't allow command execution.

On Ubuntu 14.04, edit the following file:

vim /etc/init/tty1.conf

Replace:

exec /sbin/getty -8 38400 tty1

with:

exec /usr/bin/htop </dev/tty1 >/dev/tty1 2>&1

Use full paths and make sure output and input are redirected (</dev/tty1 >/dev/tty1 2>&1).

On Ubuntu 16.04 stuff changes due to systemd. No longer can you use output redirection, this is now all handled via systemd. Create an override folder for the getty@tty1 service first: