当前位置:  技术问答>linux和unix

用终端运行应用程序,怎样使终端关闭而这个程序不关闭.

    来源: 互联网  发布时间:2016-06-29

    本文导语:  比如在终端输入gvim,可以打开vim 7.1.但关闭终端后gvim7.0不会随终端关闭.但现在大部分的程序是会随终端一起关闭的. 我想是因为终端关闭的时候发送了一个什么信号给用自已打开的应用程序,是不是在应用程序中屏蔽...

比如在终端输入gvim,可以打开vim 7.1.但关闭终端后gvim7.0不会随终端关闭.但现在大部分的程序是会随终端一起关闭的.
我想是因为终端关闭的时候发送了一个什么信号给用自已打开的应用程序,是不是在应用程序中屏蔽掉这个消息,或者自已处理这个消息就可以了,具体又是什么呢>?

|
shopt -o huponexit
设置让你的shell有终端挂起时不给属于这个终端的进程发送SIGHUP信号。

|
后台运行


youprogram &


|
  nohup 命令

  用途:不挂断地运行命令。

  语法:nohup Command [ Arg ... ] [ & ]

   描述:nohup 命令运行由 Command 参数和任何相关的 Arg 参数指定的命令,忽略所有挂断(SIGHUP)信号。在注销后使用 nohup 命令运行后台中的程序。要运行后台中的 nohup 命令,添加 & ( 表示“and”的符号)到命令的尾部。

   无论是否将 nohup 命令的输出重定向到终端,输出都将附加到当前目录的 nohup.out 文件中。如果当前目录的 nohup.out 文件不可写,输出重定向到 $HOME/nohup.out 文件中。如果没有文件能创建或打开以用于追加,那么 Command 参数指定的命令不可调用。如果标准错误是一个终端,那么把指定的命令写给标准错误的所有输出作为标准输出重定向到相同的文件描述符。

  退出状态:该命令返回下列出口值:

  126 可以查找但不能调用 Command 参数指定的命令。

  127 nohup 命令发生错误或不能查找由 Command 参数指定的命令。

  否则,nohup 命令的退出状态是 Command 参数指定命令的退出状态。

nohup命令及其输出文件

  nohup命令:如果你正在运行一个进程,而且你觉得在退出帐户时该进程还不会结束,那么可以使用nohup命令。该命令可以在你退出帐户/关闭终端之后继续运行相应的进程。nohup就是不挂起的意思( n ohang up)。

该命令的一般形式为:nohup command &

使用nohup命令提交作业

如果使用nohup命令提交作业,那么在缺省情况下该作业的所有输出都被重定向到一个名为nohup.out的文件中,除非另外指定了输出文件:
nohup command > myout.file 2>&1 &

在上面的例子中,输出被重定向到myout.file文件中。

|
守护进程

通常用户打开的一个程序是和终端连系到一起的。关闭终端,程序自然也就退出了。

把程序变成守护进程,使其不再属于任意一个终端。

|
我也没明白你到底要做什么,你的意思是不想用后台运行的方式,但是又要在终端里面运行如gvim这样的程序,而且你运行的程序不是你自己写的,又想它不受终端的控制?

|
在后台的话就用守护进程好了
或者做成随内核一起启动的程序
再rc文件中添加一行:
./yourprogram  -&

|


gvim不是Daemon, 但是它可以做成以下这个:
1. 终端启动gvim, 
2. gvim fork()子进程, 并且提升自己(或者屏蔽HUP信号)
3. gvim 子进程与用户交互
4. gvim 主进程退出.
这样在Terminal退出后, 由gvim启动的子进程是不受Terminal影响的.

|

我也是不明白,用nohup不就ok的吗

|

gvim启动的是图形界面(X Window)的?

|
我的qq不过是
$ qq
还是
$ qq&
关闭gnome terminal都会终止

|
后台运行不行么?

    
 
 

您可能感兴趣的文章:

  • 如何关闭串口终端,切换终端?
  • 为什么程序一定要在终端中运行?关闭终端程序也关闭了.
  • 我用的是putty软件SSH到linux上,但启动程序后关闭终端程序就退出了,在线等,请高人指教!
  • 关于关闭终端的信号问题
  • 终端被关闭后,bash收到哪些信号,这些信号是怎么来的?
  • sun solaris 7 下用nohup启动的进程怎么还是会随着终端窗口的关闭而退出啊?
  • SecureCRT 上执行的 python 程序如何能在关闭终端时继续执行?
  • 终端打开应用程序,怎样使当终端退出时应用程序不退出.问了好多人,其实很简单.
  • linux终端程序时如何隐藏终端
  • SuSE Linux 下"X终端"与"终端程序-超级用户模式"有什么区别?
  • 在一个终端运行一个执行时间很长的程序中如何让这个程序切换到后台执行?
  • 终端程序 Tilda
  • linux下观察串口的程序是哪个, 是终端吗.
  • 图形化终端程序 HTerm
  • 如何做到管理终端,程序依旧运行。
  • shell 编程 执行shell新建多个终端 并执行程序
  • Linux下面的开发好的Java程序,如何部署到其他机器?开发好的Java图形程序,终端上能否用?等问题
  • 使用终端远程执行程序的问题!
  • VT100-compatible 终端测试程序 vttest
  • 请问unix终端的光条式菜单程序是用什么语言开发的?谢谢
  • 有人用过centos吗?请问在centos下怎么在终端运行C语言程序或者JAVA程序?
  • 请问怎样在源程序中调用终端指令?
  • 对终端辅口进行读操作,程序要嵌在curses环境里
  • 终端仿真程序 iTerm2
  • 为什么我退出终端以后 程序自己就停了呢?
  • ubuntu11.10 顶部面板的左端没有应用程序,位置和系统 这三个菜单。怎么启动终端
  • 连接到Linux的终端可以进行程序编写吗
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • secureCRT下Linux终端汉字乱码解决方法
  • 终端 伪终端 控制终端有什么区别
  • 如何在windows下的DOS窗口中显示utf-8字符(CMD命令提示符终端显示utf-8字符)
  • 一个终端向另一终端发送命令,并在另一个终端上执行
  • CentOS安装Telnet,以root用户登陆Telnet以及CentOS的各种终端解释
  • 控制终端与终端设备是什么关系?
  • 如何得到一个终端的终端号/标示?
  • 终端、终端设备、控制台到底有什么区别和联系?(在线等,急!)
  • suse linux telnet连接到第30个终端后,无法打开新的终端
  • linux终端或仿真终端如何打印图形??
  • 在内核中怎么操作伪终端,比如想在内核打印信息到telnet的终端
  • fedora 8 字符终端和图形终端互换
  • 有能在windows下连接linux(作为一个shell终端或x终端)的软件么?
  • sco unix5.05+升腾终端,如何查看取消升腾终端上的打印任务?
  • 200分:请详细讲解一下虚终端和实终端
  • 超时的时候就停止读终端问题,为什么还在读终端啊?
  • 如何在linux(终端:ctrl+alt+F1之类的。绝非虚拟终端)下显示256色或24位的BMP图片?
  • 在一个.sh脚本中打开一个新的终端执行另一个脚本,并接着并行执行原终端的语句
  • 主机/终端模式下,如何在终端上使用图形界面?
  • 控制终端如何转移
  • 终端增强软件 Ubuntu Terminator


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3