关于Linux前后台进程切换
2024-10-13 07:08:49
前言:
当使用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:
- http://blog.csdn.net/zxh2075/article/details/52932885
- http://www.cnblogs.com/mchina/archive/2013/01/30/2880680.html
- http://nanxiao.me/kill-detached-screen-session/
最新文章
- Oracle a Parameter with multi value
- ACM题目————玩转二叉树
- 生JS实现jQuery的ready方法呢?下面是其中之一的做法:
- CENTOS6 安装配置 pptpd 心得
- mac root用户初始密码设置
- Java validator整理
- FastDFS简介和架构图(内容来自于阅读fastdfs官方文档的总结)
- ZOJ3946:Highway Project(最短路变形)
- jsp中文乱码 Servlet中文乱码 utf-8
- 360大牛:全面解读PHP面试
- IntelliJ IDEA 代码字体大小的快捷键设置放大缩小(很实用)(图文详解)
- (五)JavaScript 变量
- python学习之基础语法
- 理解web service 和 SOA
- [转]Mac Appium环境安装
- jquery可拖动表格调整列格子的宽度大小(转)
- CentOS7用yum安装软件提示 cannot find a valid baseurl for repobase7x86_64 【上网问题】
- Python实现二叉树的遍历
- DB2数据库性能调整和优化(第2版)
- HDF及HDF-EOS数据格式简介
热门文章
- 前端基础之CSS的引入+HTML标签选择器+CSS操作属性
- 思科恶意加密TLS流检测论文记录——由于样本不均衡,其实做得并不好,神马99.9的准确率都是浮云啊,之所以思科使用DNS和http一个重要假设是DGA和HTTP C&;C(正常http会有图片等)。一开始思科使用的逻辑回归,后面17年文章是随机森林。
- 检测用户命令序列异常——使用LSTM分类算法【使用朴素贝叶斯,类似垃圾邮件分类的做法也可以,将命令序列看成是垃圾邮件】
- 小程序BindTap快速连续点击页面跳转多次
- Linux安装/卸载软件教程
- 牛客网 PAT 算法历年真题 1012 : D进制的A+B (20)
- linux用户管理 用户和用户组管理
- linux 定时任务 日志记录
- linux150条命令
- 【阅读笔记】《C程序员 从校园到职场》第二章 学校到职场