Linux——让程序在后台运行(四种方法+使用推荐)
目录
一、第一种方法(加“&”符号)
二、第二种方法(nohup命令)
三、第三种方法(screen命令)
四、第四种方法(systemctl命令)
五、总结
六、实用操作(重点)
一、第一种方法(加“&”符号)
如果想让程序在后台运行,执行程序的时候,命令的最后面加“&”符号。
# 执行文件 ./test.py &# 查看是否在后台运行 ps -ef|grep test# 后台的程序 需要关闭时,需要kill命令停止 killall [程序名]
注意:这种方法,查看运行日志很不方便(不推荐)
二、第二种方法(nohup命令)
# 不推荐使用 nohup python -u test.py > test.log 2>&1 &
参数说明:
test.py
: 你需要后台运行的程序
>
: 日志文件追加到文件中
test.log
: 运行的日志,或你的文件的输出内容
& 是一个描述符,如果1或2前不加&,会被当成一个普通文件。
1>&2 意思是把标准输出重定向到标准错误.
2>&1 意思是把标准错误输出重定向到标准输出。
&>filename 意思是把标准输出和标准错误输出都重定向到文件filename中
# 不推荐使用 nohup python run.py &# 1、原因:在run.py的目录默认直接生成了nohup.out文件 # 2、原因:有些系统无法执行
# 权限不足时 加sudo nohup sudo python -u test.py > test.log2>&1 &
三、第三种方法(screen命令)
Screen是一个全屏窗口管理器,
它在多个进程(通常是交互式shell)之间多路传输物理终端。
# 安装screenyum install -y screen# 创建一个新的窗口 screen -S test# 进入窗口后 执行文件 python test.py# 退出当前窗口 ctrl+a+d (方法1:保留当前窗口) screen -d (方法2:保留当前窗口) exit (方法3:退出程序,并关闭窗口)# 查看窗口 screen -ls# 重新连接窗口 screen -r id或窗口名称# 示例: screen -r 344 screen -r test
Ctrl+a c :创建窗口 Ctrl+a w :窗口列表Ctrl+a n :下一个窗口 Ctrl+a p :上一个窗口Ctrl+a 0-9 :在第0个窗口和第9个窗口之间切换Ctrl+a K(大写) :关闭当前窗口,并且切换到下一个窗口 (当退出最后一个窗口时,该终端自动终止,并且退回到原始shell状态)exit :关闭当前窗口,并且切换到下一个窗口 (当退出最后一个窗口时,该终端自动终止,并且退回到原始shell状态)Ctrl+a d :退出当前终端,返回加载screen前的shell命令状态
四、第四种方法(systemctl命令)
详情请看: http://t.csdn.cn/XoHUS
因为systemctl比较复杂,所以这里贴上链接
注意:systemctl设置好之后,可以一劳永逸!
五、总结
使用推荐
- 第一种方法不推荐使用
- 第二种方法——在需要查看日志的情况下,建议使用(无需在关闭的那种)
- 第三种方法——在开启后,还需要关闭或还需要输入一些命令的时候下(推荐)
- 第四种方法——虽然需要学习的时间比前面几种长,但是学会之后,会很方便
六、实用操作(重点)
因为以上单个操作,都会一些弊端
1、如果让进程在后台运行,并输出日志(nohup命令),就不方便手动停止进程(需要用ps命令查看进程)
2、如果让进程在后台运行,并方便停止(screen命令),就不方便查看程序输出的日志
因此,我们可以使用组合技!(下面有例子)
1、安装screen
# 安装screenyum install -y screen
2、新建窗口
# 创建一个新的窗口 screen -S test
3、执行文件
# 进入窗口后 执行文件 python test.py > output.log 2>&1
4、退出该窗口
# 退出当前窗口 ctrl+a+d (方法1:保留当前窗口) screen -d (方法2:保留当前窗口)
5、查看程序输出文件(output.log)
6、停止程序
# 1、重新连接窗口 screen -r id或窗口名称# 示例: screen -r 344 screen -r test# 2、按 Ctrl + C 停止程序运行
实在不行,就查看程序的运行状态,也可以通过
ps
命令来查看程序是否在运行
Linux——让程序在后台运行(四种方法+使用推荐)相关推荐
- linux如何创建共享内存,linux实现共享内存同步的四种方法
https://blog.csdn.net/sunxiaopengsun/article/details/79869115 本文主要对实现共享内存同步的四种方法进行了介绍. 共享内存是一种最为高效的进 ...
- Linux开机自动化执行脚本的四种方法(真实案例分享)
Linux开机自动化执行脚本的四种方法(真实案例分享) 最近眼睛有点疼,可能是长时间面对电脑屏幕的原因罢.百度后安装了Redshift这款护眼工具,只要事先写好配置文件它会根据你的地理位置自动调节屏幕 ...
- oppo手机android系统进程,OPPO手机应用软件怎么在后台运行?OPPO软件后台运行两种方法...
明明按了Home键让APP在后台运行,结果再进来时,却回不了原先的界面,相当于重新启动了APP!相信不少小伙伴都遇到过这种情况,对于杀怪杀到一半的孩纸,更是痛彻心扉-- 要解决问题很简单,这里有两种方 ...
- 在应用程序中替换Linux中Glibc的malloc的四种方法
打算优化系统的内存分配,接管glibc提供的内存管理,但是整个工程的代码量很大,使用malloc.realloc.calloc和free的地方到处都是,如果自己写好的接口需要重命名所有的调用,先不说工 ...
- linux下查看mysql版本的四种方法
Linux查看MySQL版本的四种方法 1 在终端下执行 mysql -V 2 在help中查找 mysql --help |grep Distrib 3 在mysql 里查看 select vers ...
- linux程序已经在后台运行冻结了_让linux下程序永远后台运行
今天写了一个后台运行的脚本,发现只要我关终端,脚本也就随之停止了,昨天还不是这样啊?发现,细节之处有所不同,昨天我在运行该脚本之后,在终端shell中用exit命令退出,而今天则是直接关了终端,就这么 ...
- linux c 结构体初始化的四种方法
定义: struct InitMember {int first:double second:char* third:float four; }; 方法一:定义时赋值 struct InitMembe ...
- 网络编程(32)—— linux中销毁僵尸进程的四种方法
一.wait函数 函数原型: pid_t wait(int *status); 描述: wait可以回收任意一个僵尸进程,只要系统中存在僵尸进程,调用一次wait,就会回收一个僵尸进程. 参数说明: ...
- 解决微信小程序图片延迟加载(四种方法)
实现延迟加载的方法 1:通过监听滚动条滑动事件,判断元素距离页面顶部的距离是否小于等于页面的可视高度 Page({data: {realScrollTop: 0,//页面滚动距离driveHeight ...
最新文章
- 每日一皮:当我在重构时,总是有惊喜出现.......
- [Oracle]构筑TDE 环境的例子
- Android开发中adb命令的常用方法
- The Introduction Of Filter
- mysql api百度云盘_利用百度云盘API上传文件至百度云盘
- 教你如何安装配置Windows7系统 IIS IIS7.5本地浏览测试网站 完整版介绍
- 浅谈 MyBatis 缓存
- ZigBee学习之NXP JN5169开发环境搭建
- word方框怎么打勾?
- 迅雷下载百度网盘的资源
- 【Android UI设计与开发】5.底部菜单栏(二)使用Fragment实现底部菜单栏
- Excel如何将工作表按照表内某一单元格命名
- 大学计算机专业学高数吗,数学差的学生,大学最好别选这几个专业,不然将来恐难毕业...
- 磨砺数年,高效PERC技术终迎好时光
- #FF00FF(255,0,255)应该是紫色(Purple),把#FF00FF称为“品红”(“洋红/Magenta”)是一种误称
- 013 基于truffle的PetShop案例
- 京东店铺的所有商品API接口-(item_search_shop-获得店铺的所有商品接口),京东API接口
- boost:assert
- Linux也可以这样美——Ubuntu18.04安装、配置、美化
- force语句的使用