1. nohup

原来跑程序关了终端,程序就停了,咱的目的是后台挂起,关了终端,只要电脑不关程序就一直再跑,可以借助nohup指令,接下来给个例子看看:

新建一个 shanchu.py 文件:

import time
while(1):time.sleep(3)print(time.time())with open("x.txt", "a+") as f:f.write("{}\n".format(time.time()))

shanchu.py 运行会将时间戳写入 x.txt

nohup python shanchu.py &

&:让命令在后台执行,终端退出后命令仍旧执行。

可以看下x.txt的内容,以验证该程序是否在后台运行

2. 日志+错误重定向

但是这样在后台,要是程序报错了怎么办,要看程序输出怎么办,所以需要这样,将将输出写入log且错误重定向:

nohup python shanchu.py > log.log 2>&1 &

2>&1 解释:

将标准错误 2 重定向到标准输出 &1 ,标准输出 &1 再被重定向输入到 runoob.log 文件中。

  • 0 – stdin (standard input,标准输入)
  • 1 – stdout (standard output,标准输出)
  • 2 – stderr (standard error,标准错误输出)

再来做个实验,修改一下python文件,多两个打印print,最后print(ee)故意报错

import time
while(1):print(12)print(23)time.sleep(3)print(time.time())with open("x.txt", "a+") as f:f.write("{}\n".format(time.time()))print(ee)

执行:

nohup python shanchu.py > log.log 2>&1 &

来查看一下输出:

$ cat log.lognohup: ignoring input
12
23
1665317182.0910141
Traceback (most recent call last):File "shanchu.py", line 9, in <module>print(ee)
NameError: name 'ee' is not defined

可以看到输出和错误都在log文件中

3. 手动结束该后台进程

原来后台运行程序,咱们可以用jobs -l来查看

但是 jobs 命令只看当前终端生效的,关闭终端后,在另一个终端jobs已经无法看到后台跑得程序了,此时只能利用ps(进程查看命令)

ps -aux|grep shanchu.py
  • a:显示所有程序
  • u:以用户为主的格式来显示
  • x:显示所有程序,不以终端机来区分
$ ps -aux
USER         PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
......
xxx 1028204  0.0  0.0   9440  7428 pts/0    Ss   12:21   0:00 -bash
xxx 1028402  0.8  0.0  12984 10736 pts/0    S    12:23   0:00 python shanchu.py
xxx 1028405  0.0  0.0   7892  3420 pts/0    R+   12:23   0:00 ps -aux$ ps -aux | grep shanchu.py
xxx 1028402  0.4  0.0  12984 10736 pts/0    S    12:23   0:00 python shanchu.py
xxx 1028409  0.0  0.0   5200   668 pts/0    S+   12:23   0:00 grep shanchu.py

用ps -def | grep查找进程很方便,最后一行总是会grep自己
用grep -v参数可以将grep命令排除掉

$ ps -aux | grep shanchu.py | grep -v grep
xxx 1028402  0.0  0.0  12984 10736 pts/0    S    12:23   0:00 python shanchu.py

再用awk提取一下进程ID

$ ps -aux | grep shanchu.py | grep -v grep | awk '{print $2}'
1028402

然后 kill 结束进程即可

kill -9  进程号

有参考

https://www.runoob.com/linux/linux-comm-nohup.html
https://www.cnblogs.com/baby123/p/6477429.html

[转载] linux程序后台挂起demo——nohup相关推荐

  1. 后台运行linux程序,后台运行Linux程序的方法

    后台运行Linux程序,可以通过crontab设置,这种方法一般用来让一个程序定时运行,也可以通过./test &这样在程序末尾加上一个&使程序在后台运行. 编写代码,下面我将参考ht ...

  2. nohup 与 linux 程序后台执行

    来源:http://blog.chinaunix.net/uid-446337-id-94446.html & 方式: Unix/Linux下一般想让某个程序在后台运行,很多都是使用 & ...

  3. linux程序后台运行详解

    一.linux常用信号 SIGHUP ​ 在介绍SIGHUP之前先介绍两个概念:进程组.会话 进程组 ​ 进程组就是一系列相互关联的进程集合,系统中的每一个进程也必须从属于某一个进程组:每个进程组中都 ...

  4. Linux 程序后台运行与删除

    一.查看进程:ps 或 ps -a 二.命令后台运行: sudo ./runmyled.o&  命令后边跟个&, 返回进程id号 三.查看当前的进程: 四.删除进程:sudo kill ...

  5. linux后台启动脚本nohup,linux下后台执行shell脚本nohup

    [GSM]GTM900C的应用--短信 虽说GSM已经很老旧,但其低廉的价格,非常适合一些需要小数据上网传输和短信等功能的应用场合. 不知道GSM能否像51单片机一样,在低端应用中长久不衰.GTM90 ...

  6. Linux 下后台运行程序,查看和关闭后台运行程序(转载)

    1.运行.sh文件 直接用./sh 文件就可以运行,但是如果想后台运行,即使关闭当前的终端也可以运行的话,需要nohup命令和&命令. (1)&命令 功能:加在一个命令的最后,可以把这 ...

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

    欢迎大家关注笔者,你的关注是我持续更博的最大动力 原创文章,转载告知,盗版必究 Linux在后台运行python程序.脚本程序.可执行程序等,关闭终端仍可保持程序运行 文章目录: 1 为什么需要后台运 ...

  8. 使程序在Linux下后台运行

    一.为什么要使程序在后台执行 我们计算的程序都是周期很长的,通常要几个小时甚至一个星期.我们用的环境是用putty远程连接到日本Linux服务器.所以使程序在后台跑有以下三个好处: 1:我们这边是否关 ...

  9. Linux程序前台后台切换

    Linux程序前台后台切换1.在Linux终端运行命令的时候,在命令末尾加上 & 符号,就可以让程序在后台运行Ubuntu$">root@Ubuntu$ ./tcpserv01 ...

最新文章

  1. 猫哥教你写爬虫 006--条件判断和条件嵌套
  2. 给定一个数组求里面数字拼在一起组成的最小数字
  3. request.getServletContext()
  4. SSH-jar包相应作用
  5. php判断对象属于哪个类,PHP instanceof:判断对象是否属于某个类
  6. 详解道路标记数据集 CeyMo: See More on Roads -- A Novel Benchmark Dataset for Road Marking Detection
  7. [转载]--- 开箱即用的springboot分库分表sharding-JDBC
  8. 扣绩效,从来都不会让团队变得更好
  9. python绘制三维图散点图_python matplotlib模块——绘制三维图形、三维数据散点图...
  10. python自动导出数据脚本_使用python生成一个导出数据库的bat脚本文件的示例代码...
  11. 剑桥女博士创立情绪识别 AI 公司,帮助自闭症患者理解他人表情
  12. linux输入yum后提示: -bash: /usr/bin/yum: No such file or directory的解决方案
  13. layui表格使用复选框批量删除_LayUI表格批量删除方法
  14. cad批量打印_CAD批量打印(探索者易打软件)
  15. 怀旧--这些游戏你都玩过么?还记得么?
  16. 本地Blast2GO安装
  17. 矩阵中的entries是什么
  18. 11.媒体查询.html
  19. 分析IBinder体系中getService的流程
  20. UnityVR--小程序4--第一人称控制器

热门文章

  1. 欧美软件外包三种模式
  2. 软通动力上市难掩隐忧,软件外包模式或受冲击
  3. 阿里云服务器使用SMTP发送邮件
  4. JS中对象key为数字的使用
  5. 给你的数据加上杠杆:文本增强技术的研究进展及应用实践
  6. cpu的核数和进程_多线程,多进程,多核总结
  7. 八皇后问题(dfs)
  8. win11 ENSP AR启动40错误解决方法:
  9. ie6 兼容整理《一》
  10. windows+nginx+php运行环境部署