10-04-2017 | Remy van Elst
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.
Here's what the default login prompt on the console looks:
And here is the result,
htop running without ever logging in:
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:
exec /sbin/getty -8 38400 tty1
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:
Edit the override file:
Place the following:
[Service] ExecStart= ExecStart=-/usr/bin/htop StandardInput=tty StandardOutput=tty
Now reload the unit files and restart the service.
htop should appear on your prompt:
systemctl daemon-reload; systemctl restart firstname.lastname@example.org
Or just do a
As a bonus, you can also install
apt-get install tmux hollywood # fill your console with Hollywood melodrama technobabble
and set that up to autorun on the console. Use the following in the
systemd file otherwise
byobu will complain about wrong permissions on your homefolder:
/usr/bin/sudo -H /usr/bin/hollywood