日期:2014-05-16 浏览次数:20607 次
有些时候,我们需要在终端启动一个程序,并使之运行——但是如果关闭终端,那么这个程序也就随着关闭了。那么有没有什么方法在关闭终端后,让已经从这个终端启动的程序继续运行呢?
前置知识:
xterm,console,tty,pts,pty的区别
- shell是直接和内核进行通信的东西
- xterm是一个软件概念,可以通过这个程序连接到console从而控制主机,可以理解为cli形式的终端模拟器,而gnome-terminal,konsole就是gui形式的终端模拟器
- console是主机的控制台,是一个物理概念。
- tty、pty、pts都是终端,是硬件或者设备概念。
- tty是所有终端设备的总称
- pty是其中一类,伪终端,或者叫虚拟终端
在Unix/Linux下如果想让程序独立终端运行,一般都是使用 & 在命令结尾来让程序自动运行。(命令后可以不追加空格)
打开gnome-terminal,执行如下命令:
delectate@delectate:~$ totem &
[1] 8510
delectate@delectate:~$
delectate@delectate:~$ ps -e | grep totem
? ? //程序已被以totem & 形式启动,当前附在pts0上
8819 pts/0??? 00:00:00 totem
delectate@delectate:~$ ps -e | grep totem
? ?//pts0的模拟终端被exit命令关闭,totem自动附在tty
8819 ???????? 00:00:00 totem
delectate@delectate:~$
delectate@delectate: