GNU Screen is a Unix utility that permits running multiple interactive windows on the console. It has many abilities:

  • Spawn arbitrary commands
  • Provide titles to windows
  • Display multiple windows simultaneously (replaces split-vt)
  • Provide history buffer (replaces script)
  • Attaches to serial tty ports (if desired)
  • Detaches from console
  • Logs in or out a particular window
  • Copy/paste of text strings

Screen is very flexible and powerful, and does not limit your use to just one screen (or window) and is useful for everyday use. It can run a shell or other program (such as ssh) in another window, and can be detached and reattached on the fly from any logged in terminal with appropriate access.

You can also use it so that multiple people can see the output while one person controls the screen.

You can find a nice introduction to screen here.

If you want to run start a lisp server under a non-privileged user's account at system startup, you can add something like

su -c /path/to/script user -

to your /etc/rc.local file

/path/to/script should start with something like

screen -d -m

read the screen manpage for more options

See also: detachtty, cl-daemonize, tmux