前言:

当使用SSH远程登录服务器时,对于运行时间较长的程序(如Caffe的训练可能需要十几个小时),

SSH可能会在很长时间后断掉,导致程序没运行完就中断了。

为了解决这个问题,需要将在服务器运行的程序由“前台”转移到“后台”去。

经过几番探索,最终发现screen方法TMUX方法是最成熟最好用的(没有之一,不接受反驳):

相当于在远程服务器上开设了一个盒子,盒子里还是你的服务器。

在盒子里运行的程序不会收到SSH连接中断的影响。

随时连上服务器后只要进入盒子里,盒子的状态还和离开时一样,

这也方便了开展工作


TMUX方法:

https://gist.github.com/ryerh/14b7c24dfd623ef8edc7

对执行的命令后面加上&,直接放在后台执行

如python main.py --image_size 96 --output_size 48 --dataset faces --is_crop True --is_train True --epoch 300 --input_fname_pattern *.jpg &

用jobs可以查看当前正在运行的任务,

jobs -l是查看所有正在运行的任务

对于正在运行的程序,如果之前没有使用&,

则首先ctrl+z将其暂停,然后

bg %1可以把第一个任务放在后台运行

使用fg %1则可以把后台的进程变成前台的

以上都是在终端(XFTP)没有关闭过的前提下,

如果关闭过了又打开,则jobs没有用了,因为jobs只能查看在当前命令行窗口后台运行的程序

这时候可以使用ps命令查看所有运行的程序

使用ps -ef | grep python

查看正在运行的python程序

会显示程序的编号

如果想要关掉它

使用kill -9 2363

假设编号为2363,就可以关掉了

nohup ./test.sh & 

或者
setsid ./test.sh & 

然后输入exit,关闭终端,关闭XSHELL,再打开,使用ps -ef | grep python查看,还在

就搞定了

==============================

发现一个更高级的方法[2]:screen

说几个实用的:

screen -ls
列出当前正在运行的会话 screen -S bert
创建一个独立会话,名字叫做Bert 先按下Ctrl+a,然后输入w,列出所有已经创建的会话,其中*表示当前在哪个会话中
先按下Ctrl+a,然后输入d,可以将当前会话挂起,这时候可以关闭xshell,关闭电脑,然而在那边还在正常运行着

怎么回来呢?
先用screen -ls,看到

然后输入
screen -r 36763.bert
就能回去了
如果想要干掉已经detached的会话[3] (session),需要输入
screen -X -S 36763 quit 然后就好了 如果不小心关了电脑,但是screen会话还是attached的状态,这时候是进不去的,想关闭他的话,用下面的:
screen -X -S 36763 kill
就可以了 Reference:
  1. http://blog.csdn.net/zxh2075/article/details/52932885
  2. http://www.cnblogs.com/mchina/archive/2013/01/30/2880680.html
  3. http://nanxiao.me/kill-detached-screen-session/

最新文章

  1. Oracle a Parameter with multi value
  2. ACM题目————玩转二叉树
  3. 生JS实现jQuery的ready方法呢?下面是其中之一的做法:
  4. CENTOS6 安装配置 pptpd 心得
  5. mac root用户初始密码设置
  6. Java validator整理
  7. FastDFS简介和架构图(内容来自于阅读fastdfs官方文档的总结)
  8. ZOJ3946:Highway Project(最短路变形)
  9. jsp中文乱码 Servlet中文乱码 utf-8
  10. 360大牛:全面解读PHP面试
  11. IntelliJ IDEA 代码字体大小的快捷键设置放大缩小(很实用)(图文详解)
  12. (五)JavaScript 变量
  13. python学习之基础语法
  14. 理解web service 和 SOA
  15. [转]Mac Appium环境安装
  16. jquery可拖动表格调整列格子的宽度大小(转)
  17. CentOS7用yum安装软件提示 cannot find a valid baseurl for repobase7x86_64 【上网问题】
  18. Python实现二叉树的遍历
  19. DB2数据库性能调整和优化(第2版)
  20. HDF及HDF-EOS数据格式简介

热门文章

  1. 前端基础之CSS的引入+HTML标签选择器+CSS操作属性
  2. 思科恶意加密TLS流检测论文记录——由于样本不均衡,其实做得并不好,神马99.9的准确率都是浮云啊,之所以思科使用DNS和http一个重要假设是DGA和HTTP C&C(正常http会有图片等)。一开始思科使用的逻辑回归,后面17年文章是随机森林。
  3. 检测用户命令序列异常——使用LSTM分类算法【使用朴素贝叶斯,类似垃圾邮件分类的做法也可以,将命令序列看成是垃圾邮件】
  4. 小程序BindTap快速连续点击页面跳转多次
  5. Linux安装/卸载软件教程
  6. 牛客网 PAT 算法历年真题 1012 : D进制的A+B (20)
  7. linux用户管理 用户和用户组管理
  8. linux 定时任务 日志记录
  9. linux150条命令
  10. 【阅读笔记】《C程序员 从校园到职场》第二章 学校到职场