Linux 后台运行python .sh等程序,以及查看和关闭后台运行程序操作
1、运行.sh文件
直接用./sh 文件就可以运行,但是如果想后台运行,即使关闭当前的终端也可以运行的话,需要nohup命令和&命令。
(1)&命令
功能:加在一个命令的最后,可以把这个命令放在后台执行
(2)nohup命令
功能:不挂断的运行命令
2、查看当前后台运行的命令
有两个命令可以用,jobs和ps,区别是jobs用于查看当前终端后台运行的任务,换了终端就看不到了。而ps命令用于查看瞬间进程的动态,可以看到别的终端运行的后台进程。
(1)jobs命令
功能:查看当前终端后台运行的任务jobs -l选项可显示当前终端所有任务的PID,jobs的状态可以是running,stopped,Terminated。+ 号表示当前任务,- 号表示后一个任务。
(2)ps命令
功能:查看当前的所有进程ps -aux | grep "test.sh" #a:显示所有程序 u:以用户为主的格式来显示 x:显示所有程序,不以终端机来区分
3、关闭当前后台运行的命令
kill命令:结束进程(1)通过jobs命令查看jobnum,然后执行 kill %jobnum(2)通过ps命令查看进程号PID,然后执行 kill %PID如果是前台进程的话,直接执行 Ctrl+c 就可以终止了
4、前后台进程的切换与控制
(1)fg命令功能:将后台中的命令调至前台继续运行如果后台中有多个命令,可以先用jobs查看jobnun,然后用 fg %jobnum 将选中的命令调出。(2)Ctrl + z 命令功能:将一个正在前台执行的命令放到后台,并且处于暂停状态(3)bg命令功能:将一个在后台暂停的命令,变成在后台继续执行如果后台中有多个命令,可以先用jobs查看jobnum,然后用 bg %jobnum 将选中的命令调出继续执行。
5、运行Python示例
[root@xxxxx nlp]# nohup python -u jbabs.py > out.log 2>&1 &
[1] 20087
[root@xxxxx nlp]# jobs
[1]+ Running nohup python -u jbabs.py > out.log 2>&1 &
运行一个Python脚本,通常设置如下
$ python /data/python/server.py >python.log &
说明:
1、 > 表示把标准输出(STDOUT)重定向到 那个文件,这里重定向到了python.log
2、 & 表示在后台执行脚本
这样可以到达目的,但是,我们退出shell窗口的时候,必须用exit命令来退出,否则,退出之后,该进程也会随着shell的消失而消失(退出、关闭)
- 使用nohup(not hang up):
$ nohup python /data/python/server.py > python.log3 2>&1 &说明:
1、1是标准输出(STDOUT)的文件描述符,2是标准错误(STDERR)的文件描述符
1> python.log 简化为 > python.log,表示把标准输出重定向到python.log这个文件
2、2>&1 表示把标准错误重定向到标准输出,这里&1表示标准输出 , 为什么需要将标准错误重定向到标准输出的原因,是因为标准错误没有缓冲区,而STDOUT有。 这就会导致 commond > python.log ,2> python.log 文件python.log被两次打开,而STDOUT和 STDERR将会竞争覆盖,这肯定不是我门想要的
3、好了,我们现在可以直接关闭shell窗口(我用的是SecureCRT,用的比较多的还有Xshell),而不用再输入exit这个命令来退出shell了
$ ps aux|grep python
tomener 1885 0.1 0.4 13120 4528 pts/0 S 15:48 0:00 python /data/python/server.py
tomener 1887 0.0 0.0 5980 752 pts/0 S+ 15:48 0:00 grep python
在当我们直接关闭shell窗口,再连接上服务器,查看Python的进程,发现进程还在
但是,在python运行中却查看不到输出!
因为:
python的输出有缓冲,导致python.log3并不能够马上看到输出。
使用-u参数,使得python不启用缓冲。
所以改正命令,就可以正常使用了
$ nohup python -u test.py > out.log 2>&1 &
![](/assets/blank.gif)
Linux 后台运行python .sh等程序,以及查看和关闭后台运行程序操作相关推荐
- Linux 下后台运行程序,查看和关闭后台运行程序(转载)
1.运行.sh文件 直接用./sh 文件就可以运行,但是如果想后台运行,即使关闭当前的终端也可以运行的话,需要nohup命令和&命令. (1)&命令 功能:加在一个命令的最后,可以把这 ...
- Linux 下后台运行程序,查看和关闭后台运行程序
1.运行.sh文件 直接用./sh 文件就可以运行,但是如果想后台运行,即使关闭当前的终端也可以运行的话,需要nohup命令和&命令. (1)&命令 功能:加在一个命令的最后,可以把这 ...
- 怎么在Linux中后台启动服务,查看和关闭后台运行程序
1.启动服务 直接用./xxx.py 文件就可以运行,但是如果想后台运行,即使关闭当前的终端也可以运行的话,需要nohup命令和&命令. (1).&命令 功能:加在命令的最后.作用是可 ...
- linux查看和关闭后台执行程序
后台执行的程序会有一个pid,查看后台程序主要用到jobs,ps 关闭后台程序用到kill 详细说明转自http://blog.csdn.net/tianlesoftware/article/deta ...
- linux查看 tcp连接对应的程序,轻轻松松查看TCP连接及发起程序
引子: Windows的mspaint(就是画图)程序未知原因崩溃了,提示用户是否将发送错误报告(Windows7的错误报告服务程序是WerFault.exe)给Microsoft Corporati ...
- 运行python嵌入式要求_在嵌入式IPython实例中运行配置文件启动文件
我发现了一种方法,如果你使用的是django-extensions-shell_plus.这有点老套,但是通过这种方式,你的启动文件是完全自动加载的,你不必在ipython会话开始时输入任何run命令 ...
- java 程序更新_如何关闭JAVA更新程序
Win7系统上安装JAVA JRE或JDK后,系统就会启动一个jusched进程,定时检查JRE或JDK更新包,跟Adobe Reader.FlashPlayer一样烦人,每次开机,或是定时每天去搞个 ...
- shell脚本配置运行python程序,小技巧之 Linux 软连接的使用
shell脚本配置运行python程序,小技巧之 Linux 软连接的使用 实验室的多位博士会在同一台机器上跑python程序,主流的跑程序的方法有两种 使用sh脚本配置路径和程序 直接激活conda ...
- python打卡以及Linux自动运行python文件
python打卡以及Linux自动运行python文件 前因 分析 python代码 实现linux自动运行python文件 了解crond 开机自启设置 定时运行python文件设置 crond踩坑 ...
最新文章
- 装饰模式(Decorator Pattern)
- Docker对AUFS的使用
- linux shell find 命令简介
- 35个让人惊讶的 CSS3 动画效果演示
- linux常见命令的常用方法示例
- 两招让陌生网络访问者现出原形
- 数字示波器的激烈竞争
- mingw c++ 命令行_Mingw-w64在win10下的安装使用
- 小程序源码 租房管理系统_租房小程序解决方案
- 浏览器播放rtsp流媒体解决方案
- SSH整合报错:找不到元素 'beans' 的声明
- stat /bin/bash: no such file or directory“: unknown.
- WebView 简单使用方法
- 【Photoshop】滤镜详解
- 计算机编码知识,ASCII编码,GBK,Unicode,UTF-8编码详细介绍
- 网页设计的秘诀:如何用颜色烘托情感
- Compiz Fusion 简介
- 网络攻防——网络攻击技术分类
- 利用阿里大鱼发送短信验证
- PYTHON学习之旅1:linux操作系统学习