---
name: "open"
section: "1"
platform: "linux"
package: "kbd"
version: "2.0.3-2+b1"
release: "Debian 9 (Stretch)"
platforms: ["linux"]
url: "https://new.carta.tech/openvt"
---

# open(1)

start a program on a new virtual terminal (VT).

Part of [openvt(1)](/openvt/1.md).

## NAME

openvt - start a program on a new virtual terminal (VT).

## SYNOPSIS

**openvt** \[-c vtnumber\] \[OPTIONS\] \[--\] command

## DESCRIPTION

**openvt** will find the first available VT, and run on it the given  **command** with the given  **command options**, standard input, output and error are directed to that terminal. The current search path ($PATH) is used to find the requested command. If no command is specified then the environment variable $SHELL is used.

### OPTIONS

- *-c, --console=VTNUMBER*

  Use the given VT number and not the first available. Note you must have write access to the supplied VT for this to work;

- *-f, --force*

  Force opening a VT without checking whether it is already in use;

- *-e, --exec*

  Directly execute the given command, without forking. This option is meant for use in */etc/inittab*. If you want to use this feature in another context, be aware that **openvt** has to be a session leader in order for -e to work.  See [**setsid**(2)](/setsid/2.md) or [**setsid**(1)](/setsid/1.md) on how to achieve this.

- *-s, --switch*

  Switch to the new VT when starting the command. The VT of the new command will be made the new current VT;

- *-u, --user*

  Figure out the owner of the current VT, and run login as that user. Suitable to be called by init. Shouldn't be used with -c or -l;

- *-l, --login*

  Make the command a login shell. A - is prepended to the name of the command to be executed;

- *-v, --verbose*

  Be a bit more verbose;

- *-w, --wait*

  wait for command to complete. If -w and -s are used together then **openvt** will switch back to the controlling terminal when the command completes;

- *-V, --version*

  print program version and exit;

- *-h, --help*

  show this text and exit.

- *--*

  end of options to **openvt**.

## NOTE

If **openvt** is compiled with a getopt\_long() and you wish to set options to the command to be run, then you must supply the end of options -- flag before the command.

## EXAMPLES

**openvt** can be used to start a shell on the next free VT, by using the command:

- *openvt bash*

  - To start the shell as a login shell, use:

  - *openvt -l bash*

  - To get a long listing you must supply the -- separator:

  - *openvt -- ls -l*

  ## HISTORY

Earlier, **openvt** was called **open**. It was written by Jon Tombs \<jon@gtex02.us.es or jon@robots.ox.ac.uk\>. The -w idea is from "sam".

## SEE ALSO

[**chvt**(1)](/chvt/1.md), **doshell**(8), [**login**(1)](/login/1.md)
