欢迎大家关注笔者,你的关注是我持续更博的最大动力

原创文章,转载告知,盗版必究

Linux在后台运行python程序、脚本程序、可执行程序等,关闭终端仍可保持程序运行

文章目录:

  • 1 为什么需要后台运行程序,场景分析
  • 2 前台运行命令 / 程序
    • 2.1 `运行前台命令 / 程序`
    • 2.2 `终止前台命令 / 程序`
      • 2.2.1 `按 Ctrl+C 终止前台命令`
      • 2.2.2 查看`前台运行命令的PID`,然后用`kill直接杀死进程`
  • 3 后台运行命令 / 程序
    • 3.1 nohup和&结合,在后台运行命令
    • 3.2 使用jobs命令查看后台运行的命令 / 程序
    • 3.3 终止后台运行的命令 / 程序
  • 4 前台与后台命令的切与控制
    • 4.1 fg命令:后台命令调至前台继续运行
    • 4.2 Ctrl + z 命令:将一个正在前台执行的命令放到后台,并且处于暂停状态
    • 4.3 bg命令:将一个在后台暂停的命令,变成在后台继续执行

1 为什么需要后台运行程序,场景分析

你是否遇到:在用ssh或其他远程连接工具连接服务器在终端中运行一些程序,然后程序执行期间连接断开。执行时间短的还好,如果时间比较长就比较惨了,还要从头再来!

如下,是我执行的训练,训练了十几个小时,训练一般终端连接断开:

在讲后台运行命令,我们先来说一下前台运行的命令!

2 前台运行命令 / 程序

前台运行命令:就是把命令直接放在终端上执行`

2.1 运行前台命令 / 程序

示例:在前台执行 test.py脚本

import timewith open('test.txt', 'w') as f:for i in range(100):print("开始写入数据{}".format(i))f.write("写入数据{}\n".format(i))time.sleep(1)

2.2 终止前台命令 / 程序

终止前台命令有两种方法:

  • 按 Ctrl+C 终止前台命令
  • 查看前台运行命令的PID,然后用kill直接杀死进程

2.2.1 按 Ctrl+C 终止前台命令

如上图,直接按Ctrl + C即可终止前台命令

2.2.2 查看前台运行命令的PID,然后用kill直接杀死进程

1、使用如下命令查看运行的python命令

ps -aux | grep python

2、根据命令的进程PID,使用kill命令杀死该进程

kill -9 4678

3 后台运行命令 / 程序

后台运行命令 / 程序,主要依赖两个命令:

  • nohup 命令 :不挂断运行命令
  • & 命令:加在一个命令的最后,可以把这个命令放在后台执行

3.1 nohup和&结合,在后台运行命令

后台运行命令方式:

nohup command &

1、例如,我们把上面我们的python test.py 命令放在后台运行

nohup python test.py &

此时即使关闭终端命令也会一直执行!

2、命令运行结果分析

  • 1)将命令挂起后台运行,会返回该命令的进程PID,如我运行nohup python test.py &返回该命令的进程号9974
  • 2)按Ctrl + C命令命令并没有终止,从下面使用ps -aux | grep python可以看到该进程,说明该命令已经放到后台运行了
  • 3)但是在使用cat test.txt里面并没有写入任何内容,猜测可能只是先写入缓存,等程序后台执行完毕之后,内容就会写入到test.txt中

3.2 使用jobs命令查看后台运行的命令 / 程序

查看后台运行的命令 / 程序,使用jobs命令

jobs

jobs -l选项可以多显示一个PID信息。

显示信息说明:

  • 第一列:任务序号(可以用来杀死后台运行命令),注意并不是PID
  • 第二列:+ 号表示当前顶部任务,- 号其次任务,没符号是其他任务
  • 第三列:PID(可以用来杀死后台运行命令)(上面例子中,默认情况下没有PID)
  • 第四列:状态,四种(运行中已停止已完成已杀死
  • 第五列:任务名称(即刚才运行的命令

注意:
jobs只能查看当前终端运行的后台命令,如果在另外一个终端下是看不到该终端开启的后台命令的,如上图。

3.3 终止后台运行的命令 / 程序

nohup python test.py &执行后返回两个值:

[1] 13818

  • [1] :可以理解为后台运行命令的ID
  • 13818:为后台运行命令的进程PID

终止命令也有两种方式:

1、使用kill命令和后台运行命令的ID

kill %1

2、使用kill命令和后台运行命令的进程PID

kill 13818kill %13818

4 前台与后台命令的切与控制

4.1 fg命令:后台命令调至前台继续运行

功能:将后台中的命令调至前台继续运行

如果后台中有多个命令,可以先用jobs查看jobnun,然后用 fg %jobnum 将选中的命令调出。

4.2 Ctrl + z 命令:将一个正在前台执行的命令放到后台,并且处于暂停状态

功能:将一个正在前台执行的命令放到后台,并且处于暂停状态

4.3 bg命令:将一个在后台暂停的命令,变成在后台继续执行

功能:将一个在后台暂停的命令,变成在后台继续执行

如果后台中有多个命令,可以先用jobs查看jobnum,然后用 bg %jobnum将选中的命令调出继续执行。

参考1:https://blog.csdn.net/davidhzq/article/details/102766881
参考2:https://blog.csdn.net/u013846293/article/details/74003051
参考3:https://blog.csdn.net/zxh2075/article/details/52932885
参考4:https://blog.csdn.net/liuyanfeier/article/details/62422742






♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠

Linux在后台运行python程序、脚本程序、可执行程序等,关闭终端仍可保持程序运行相关推荐

  1. linux脚本输出缓存上限,关于 Linux 下后台执行 Python 脚本的缓冲问题

    [问题简述] 在 Linux 下后台执行 Python 脚本,重定向到日志文件,日志文件迟迟没有内容. [方案一](测试有效)nohup python3 -u t.py &> log.l ...

  2. 电脑运行python后很卡_Python初学者请注意!别这样直接运行python命令,否则电脑等于“裸奔”...

    晓查 编译整理  量子位 报道 公众号 QbitAI Python已经成为全球最受欢迎的编程语言之一.原因当然是Python简明易用的脚本语法,只需把一段程序放入.py文件中,就能快速运行. 而且Py ...

  3. Linux下运行python自动化脚本

    前言 确认搭建自动化环境的服务是哪一台,确定后拿到服务ip.用户名.密码连接上服务即可开始以下步骤 一.python3安装 1.yum安装依赖包 yum -y install zlib-devel b ...

  4. crontab -e 运行python的脚本的坑

    用shell + crontab写了个监控程序,详情见上一篇博文 "时时监控程序运行的方法" 其中shell脚本运行程序的命令: python main_dynamic.py 虽然 ...

  5. 配置Office Excel运行Python宏脚本!

    基本环境 名称版本操作系统Windows 10 x64Office2016 Python资源共享群:626017123 安装Python 1.下载Python安装包 登录 https://www.py ...

  6. python写自动化运行脚本_bat文件一键运行python自动化脚本

    ThinkPHP3.2.3 安装教程 本文以  Windows  平台为例 安装前准备:Windows操作系统的电脑,php编程环境(配置好了Apache.MySql.php).推荐wampserve ...

  7. Windows 系统如何定时运行 Python 程序或脚本

    需求 我们经常有需要在系统上定时运行某个 Python 脚本来执行任务,例如每天定时运行 Python 爬虫脚本来获取数据,那在 Windows 系统上该如何定时运行 Python 脚本或程序呢? 步 ...

  8. linux查看 后台运行的程序看不出来,linux后台运行、关闭和查看程序的方法

    一.关闭终端后,后台依然运行的程序的方法 nohup python main.py & (其中python main.py就是我们要运行的程序) 用这个命令,关闭终端后,在另一个终端查看运行的 ...

  9. 后台运行python脚本

    在服务器运行python脚本时,如果使用平常的python aaa.py,当你关闭xshell工具后,程序也就停止了,这时需要让服务器后台运行python脚本,本机关机后,服务器也会运行,这时你只需睡 ...

最新文章

  1. Centos下MySQL安装与配置
  2. 用mermaid写sequenceDiagram
  3. 分布式协调组件ZooKeeper的技术理论剖析-综合组件环境实战
  4. java 自定义tostring_Java 怎么写这个自定义class的toString方法?
  5. list-style-type:decimal在IE中显示全是1的解析
  6. 知道第一章计算机基础知识作业答案,大学计算机基础作业答案
  7. L2-007. 家庭房产
  8. python修改第三方库重写_python安装第三方库时的一些bug 镜像源修改
  9. 论文 计算机网络技术的功能,计算机网络技术在有线电视网络中的作用论文
  10. MBR、主引导扇区,主分区、扩展分区、逻辑分区,活动分区、引导分区、系统分区、启动分区的区别详解
  11. 如何在 macOS 中将用户帐户拆分为两个单独的帐户?
  12. *第二周*数据结构实践项目一【交换】
  13. 惠普(HP) LaserJet Pro M1136 MFP 黑白多功能激光一体机 (打印 复印 扫描)驱动安装记录
  14. Python爬虫入门教程 40-100 博客园Python相关40W博客抓取 scrapy
  15. Elasticsearch 文档内容检索插件 ingest attachment 安装
  16. 不可不知!4种常见的黑客攻击手段
  17. 视频教程-从入门到精通学全套AI 轻松掌握illustrator基础加实战技能视频课程-Illustrator
  18. 抖音外卖服务商如何申请
  19. MWC 2018火热开幕,AI取代手机成主角,华为超越苹果称霸!
  20. 零基础学JAVA怎么学?

热门文章

  1. CHOJ# 在线编译及评判系统(OnlineJudge)2.0 Beta2
  2. 我的设计模型之简单工厂
  3. python拿什么做可视化界面好-python爬虫如何制作可视化界面?(pyqt5环境配置篇)...
  4. python代码块-python小数据池,代码块的最详细、深入剖析
  5. python爬虫下载-python爬虫之下载文件的方式总结以及程序实例
  6. python安装教程3.8.5-怎么安装最新Python3.8.5-新手入门教程必看
  7. python输入完怎么运行-教你如何编写、保存与运行Python程序的方法
  8. python在线工具-在线 Python运行工具
  9. python自学用什么书好-适合python基础学习的好书籍
  10. python基础教程多少钱-厦门厦禾路Python基础教程培训费用多少-泰兴市新闻