场景

python 代码,打印1~3000,每秒打印一次

## file_name: test.py

import time

i = 0

while 1:

time.sleep(1)

i = i + 1

print(i)

if i > 3000:

break

问题:直接在终端执行:python test.py, 需要在这个终端一直等,没法干别的事了。如何让代码在后端执行?

&——让命令后台执行

python test.py &

在命令后面加&,可以让命令在后台执行

问题:打印的东西还是会在终端显示,这明显干扰正常的工作啊,如何把打印的东西打打到指定的文件?

>——输出重定向

python test.py >out.txt &

这样就会把输出打印到out.txt

问题:如果中间发生了异常,错误信息就丢啦,比如下面的代码,如何把错误信息也打印到out.txt呢?

import time

i = 0

while 1:

time.sleep(1)

i = i + 1

print(i)

if i == 10:

i = i / 0

if i > 3000:

break

2>&1 ——将标准出错重定向到标准输出

python test.py > out.txt 2>&1 &

执行可以看到错误

2

3

4

5

6

7

8

9

10

Traceback (most recent call last):

File "test.py", line 8, in

i = i / 0

ZeroDivisionError: integer division or modulo by zero

欧耶,搞定,书归正传,把异常代码干掉继续

问题:关闭本终端,后台程序终止了,尴尬。如何在关闭本终端是程序可以依然执行

nohup——退出终端后,程序依然后台执行

nohup python test.py > out.txt 2>&1 &

关闭终端,再重新进入终端,可以可以看到进程是或者的,目前查看进程存活的方式是ps -ef | grep test。

问题:能否有专门的命令,看到所有后台执行的命令

jobs——查看后台执行的进程

$ jobs

[1]+ Running nohup python test.py > out.txt 2>&1 &

如果有多个呢?再起一个类似的后台进程test2, test3,另外把具体的pid也打出来

[1] 192415 Running nohup python test.py > out.txt 2>&1 &

[2]- 192646 Running nohup python test2.py > out.txt 2>&1 &

[3]+ 192647 Running nohup python test3.py > out.txt 2>&1 &

可以看到,[1][2][3]后面的状态是不同的,最后启动的放在最后边

问题:怎么把后台执行的命令重新调到前端执行呢?

fg——把后台执行的命令

$ fg

nohup python test3.py > out.txt 2>&1

可以看到调入前台重新执行的是[3]+, 状态是+的。 刚才jobs里的能否指定某一个呢,可以的

$ fg %1

nohup python test.py > out.txt 2>&1

注意:%1, 中间没有空格,1,就是上面的[1]编号

如何把调入前台执行的命令终止呢?Ctrl + C

问题:如何暂停某个进程?

Ctrl+z——暂停某个进程

目前在执行test, Ctrl+Z暂停,然后看看现在进程的状态

$ jobs

[1]+ Stopped nohup python test.py > out.txt 2>&1

[2]- Running nohup python test2.py > out.txt 2>&1 &

问题:如何继续执行暂停的进程

bg——继续执行后台暂停的进程

$ bg %1

[1]+ nohup python test.py > out.py 2>&1 &

t$ jobs

[1]- Running nohup python test.py > out.py 2>&1 &

[2]+ Running nohup python test2.py > out.py 2>&1 &

问题:是继续执行,还是重新执行呢?

继续执行,以下代码验证下

import time

import datetime

i = 0

while 1:

time.sleep(1)

i = i + 1

print(i)

now = datetime.datetime.now()

print(now.strftime('%a, %b %d %H:%M:%S'))

if i > 3000:

break

可以看到在打印到20后,是暂停的,后面执行时,数字接着执行,如果是这样感觉这个命令好强大

除了程序执行结束,如何杀死进程

kil——终止进程

根据jobs -l 得到的进程号,直接kill pid 或者 kill jobno (这里的jobno是[]中的数字)

一图总结上文

linux 命令 抛后台,Linux 后台执行命令相关推荐

  1. unity连接linux服务器,C#编程之C#通过SharpSSH库与Linux服务器建立SSH连接并执行命令...

    本文主要向大家介绍了C#编程之C#通过SharpSSH库与Linux服务器建立SSH连接并执行命令,通过具体的内容向大家展示,希望对大家学习C#编程有所帮助. 在Unity3D项目开发工具时需要用到S ...

  2. c# ssh到linux,C#通过SharpSSH库与Linux服务器建立SSH连接并执行命令

    在Unity3D项目开发工具时需要用到SSH连接远程Linux服务器执行命令,找到SharpSSH链接库后,通过此方法就可使用./// /// SSH登录远程Linux服务器,并运行指令 /// // ...

  3. 详解在 Linux 启动时,如何自动执行命令或脚本

    2019独角兽企业重金招聘Python工程师标准>>> 我一直很好奇,在启动 Linux 系统并登录的过程中到底发生了什么事情.按下开机键或启动一个虚拟机,你就启动了一系列事件,之后 ...

  4. linux命令之watch -- 周期性地执行命令

    watch是一个非常实用的命令,基本所有的Linux发行版都带有这个小工具,如同名字一样,watch可以帮你监测一个命令的运行结果,省得你一遍遍的手动运行. 在Linux下,watch是周期性的执行下 ...

  5. Linux执行命令提示Password,linux expect远程自动登录以及执行命令

    linux远程自动登录以及执行命令 远程登录 该自动登录的过程是通过shell里面expect实现的,类似相当于开了一个类似于cmd的命令段输出IP和密码. 注意该脚本能够执行的前提是安装了expec ...

  6. linux命令哲学,Linux哲学思想、history实现执行命令的时间、Linux命令格式

    1.Linux哲学思想 (1)一切皆是文件(包括硬件),所有都以文件形式显示. (2)小型,单一用途的程序 (3)链接程序,共同完成复杂的任务 (4)命令提示符为主 (5)配置数据存储在文本中 2.临 ...

  7. linux计划任务执行日志,linux中centos制定计划任务执行命令并且输出日志

    1.写脚本 最简单的 写如下代码 #!/bin/sh A B C 1.每个命令之间用;隔开 说明:各命令的执行给果,不会影响其它命令的执行.换句话说,各个命令都会执行, 但不保证每个命令都执行成功. ...

  8. python ssh 远程登录路由器执行命令_ssh批量登录并执行命令(python实现)

    局域网内有一百多台电脑,全部都是linux操作系统,所有电脑配置相同,系统完全相同(包括用户名和密码),ip地址是自动分配的.现在有个任务是在这些电脑上执行某些命令,者说进行某些操作,比如安装某些软件 ...

  9. python 延时运行命令_使用子进程延迟执行命令

    我正试图使用子进程从python脚本执行此命令:sleep 10 && sudo /etc/init.d/tractor-blade restart & 我希望python脚本 ...

  10. C语言打开记事本文件,并向记事本写入字符串,跨程序向cmd命令行窗口写入字符串执行命令

    终于解决了C语言控制cmd窗口,多次发送字符串给cmd执行命令,特此记录一下. 功能1:C语言用线程打开记事本,发送消息给记事本,实现向记事本写入字符 功能2:C语言发送消息给已经打开的cmd窗口,实 ...

最新文章

  1. Android学习笔记21:ImageView获取网络图片
  2. Java基础之随机生成数字和字母
  3. 本地笔记软件_笔记软件obsidian重大更新
  4. 多媒体个人计算机能处理什么,多媒体计算机可以处理的信息类型有哪些
  5. Python 面向对象与 C++、Java 的异同
  6. 工作30:加入git版本库
  7. jquery验证表单很简单的方法
  8. c语言编译是繁体字,cconv实现简体/繁体转换
  9. QQ音乐首页静态页面练习
  10. 如何将PS中的图片字体变为黑色
  11. linux ftp pure,linux下安装FTP(pure-ftpd)
  12. 布袋除尘器过滤风速多少_袋式除尘器过滤风速一般多大
  13. Hive 数据同步ClickHouse
  14. Hadoop系列-Hadoop常用命令(五)
  15. 一致性hash算法虚拟节点解决方案
  16. UEM系列(一)用户体验管理介绍
  17. 什么是网站站群?网站站群有哪些类型?
  18. windows+vscode+opencv源码安装配置
  19. hfss软件linux版,hfss15.0|Ansoft HFSS 15下载v15.0.1官方免费版 - 欧普软件下载
  20. 小米、资生堂、都乐、发那科、云锋金融等公司高管变动

热门文章

  1. feeder link
  2. 【3】C++语法与数据结构之MFC_CList学生管理系统_链表外排序_函数指针
  3. 全国计算机三级数据库技术选择题,全国计算机三级《数据库技术》选择题训练2016...
  4. oracle 查询过去一个星期的数据_过去一星期,最懂我的居然是一个表情包
  5. android-x86 镜像iso下载_Windows 10(1909)最新12月更新版MSDN官方简体中文原版ISO镜像下载+激huo工ju...
  6. 第二次作业--熟悉使用工具
  7. 杂项-事务:OLTP(联机事务处理过程)
  8. 洛谷 P1939 【模板】矩阵加速(数列)
  9. python对象分类
  10. mysql配置以及性能优化(转)