设为首页收藏本站

LUPA开源社区

 找回密码
 注册
文章 帖子 博客
LUPA开源社区 首页 业界资讯 技术文摘 查看内容

再也不用担心断网 Linux后台运行的几种方式

2018-8-30 19:07| 发布者: joejoe0332| 查看: 2451| 评论: 0|原作者: 不懒程序猿|来自: 百家号

摘要: 当使用 ssh远程登录 Linux终端的时候,这个终端以及在这个终端开启的所有进程都是在 一个 Session中,终端就是这个会话的会话头,一旦终端被杀死(比如说网络掉线或者主动退出等),这个会话里面的所有进程组和进程 ...

当使用 ssh远程登录 Linux终端的时候,这个终端以及在这个终端开启的所有进程都是在 一个 Session中,终端就是这个会话的会话头,一旦终端被杀死(比如说网络掉线或者主动退出等),这个会话里面的所有进程组和进程都会收到 hangup信号,全部被杀死。

如果我们的程序在终端上正在运行,那么这个时候可能就要喊出***了,因为我们的程序就这样随着终端结束的时候被杀死了。一些运行时间短的程序还好说,如果是运行了很久的程序在等待结果,那么就会对我们造成巨大的损失,那么如何避免这样的事情发生呢?

下面我们就介绍比较常用的3种方式。

如果想要在终端开启的任务不随着终端的死亡而死亡,如果使用 &,是不行的,终端被杀死的时候,进程仍然会被杀死。需要这样做:

1.使用 nohup命令

nohup ***,这个 ***任务就不会跟随会话的死亡而死亡了,但是这样没有程序的打印信息;

2.setsid ***

这样,***任务仍然会打印信息而且不随 终端的死亡而死亡。setsid相当于 离开了原来的会话组,自己创建了一个会话组并且是会话组头领,所以不会随着 终端的死亡而死亡(因为终端死亡的时候不会给 ***进程发送 hangup信号)。

3.使用虚拟screen

目前这个是最好的方法,即使掉线之后,也可以使用 screen -r命令将虚拟screen重新调出来,查看打印信息。唯一不方便的地方就是 需要手动安装这个软件。不过手动安装也不困难,yum install screen即可。

下面我们着重说一下格外强大的 screen中常用的命令:

screen 开启一个screen终端

screen -ls 查看开启了那些screen终端

screeen -r 15880 恢复到指定的终端(如果只有一个screen 可以不用指定-r的参数)

screen -wipe 擦除已经死掉的screen

在screen中的时候,ctrl+a+d直接退回到打开 screen的终端,可以使用 kill -9 15880来杀死想要关闭的 screen。


酷毙

雷人

鲜花

鸡蛋

漂亮
  • 快毕业了,没工作经验,
    找份工作好难啊?
    赶紧去人才芯片公司磨练吧!!

最新评论

关于LUPA|人才芯片工程|人才招聘|LUPA认证|LUPA教育|LUPA开源社区 ( 浙B2-20090187 浙公网安备 33010602006705号   

返回顶部