Linux终端退出程序不退出解决方案(nohup/screen)

终端异常退出后,后台进程不关闭的解决办法:
1、使用nohup命令: nohup <command> [argument…] & nohup可以屏蔽SIGHUP信号!

2、使用 screen命令。

打开一个ssh终端,执行screen,并回车,即可创建了一个新的虚拟终端

  此时在上边执行的程序,如果遇到服务器断线是不会中断的,依然会在后台运行

  当新的ssh连接到服务器后,执行screen -x 就可以连接到刚才的终端了

  此外,利用screen建立的终端,还具有实时演示的效果。

  比如两个用户A和B,分别从北京和上海使用SSH连接到一个服务器

  A先执行screen建立好虚拟终端,B执行screen -x连接上来

  这时候的虚拟终端是唯一的,就像二人都在显示器前一样

  A键入的命令和显示的结果,B都可以实施看到

  B键入的命令和输入结果,A也可以实施看到

  因此,利用screen,还可以进行远程操作演示、培训等

  注意:

  1) 如果多次执行screen,则会建立多个虚拟终端。

  当执行screen -x的时候,则会被询问,要连接到哪一个虚拟终端,如下所示:

  [root@idc root]# screen -x

  There are several suitable screens on:

  1408.pts-0.idc (Attached)

  1382.pts-4.idc (Attached)

  Type "screen [-d] -r [pid.]tty.host" to resume one of them.

  [root@idc root]#

  这个时候,要执行screen -x <终端名>,就可以连接到需要的终端,例如

  screen -x 1382.pts-4.idc,即可连接到名为1382.pts-4.idc的虚拟终端上。

  2) 退出虚拟终端的方法:首先用screen -x连接到终端,然后执行exit即可退出当前终端。


screen命令介绍
1. $:screen  创建一个screen(可以用screen -S ID,打开一个指定的ID session)
2. $:screen -ls 显示所有的screen会话
3. $:screen -d  脱离当前screen ,返回正常shell
4. $:screen -r 6361(用session -ls可以得到)进入指定screen
  参  数:
  -A  将所有的视窗都调整为目前终端机的大小。
  -d<作业名称>  将指定的screen作业离线。
  -h<行数>  指定视窗的缓冲区行数。
  -m  即使目前已在作业中的screen作业,仍强制建立新的screen作业。
  -r<作业名称>  恢复离线的screen作业。
  -R  先试图恢复离线的作业。若找不到离线的作业,即建立新的screen作业。
  -s  指定建立新视窗时,所要执行的shell。
  -S<作业名称>  指定screen作业的名称。
  -v  显示版本信息。
  -x  恢复之前离线的screen作业。
  -ls或--list  显示目前所有的screen作业。
  -wipe  检查目前所有的screen作业,并删除已经无法使用的screen作业。
Screen 操作快捷键
* ctrl-a c:创建一个新的 Shell
* ctrl-a ctrl-a:在 Shell 间切换
* ctrl-a n:切换到下一个 Shell
* ctrl-a p:切换到上一个 Shell
* ctrl-a 0…9:同样是切换各个 Shell
* ctrl-a d:退出 Screen 会话


  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值