linux 命令 抛后台,Linux 后台执行命令

场景

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

image-2.png

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

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

kil——终止进程

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

一图总结上文

image-3.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/359232.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【JSP】JSP与oracle数据库交互案例

************************************************************************ ****原文:blog.csdn.net/clark_xu 徐长亮的专栏 ************************************************************************ 本案例为咖啡销售情况录入查询系统 一、数据输入系统&…

【APICloud系列|34】上架华为应用市场缺少免责函?

针对华为应用市场,不管提交的是什么类型的应用,都应该提交免责函, 需要提前下载模板进行盖章后,转成图片上传。 免责函模板如下: 被拒绝的信息如下: 再次将免责函提交上去就没啥问题啦,因为其…

Property Animator 属性动画概述与示例

Property Animation 属性动画 属性动画是一个强大的框架,它几乎可以让你的所有东西做动画,你可以随着时间的推移通过更改他们的属性来定义动画,无论它是否绘制在屏幕上,一个属性动画是在指定的时间内去改变属性(一个对…

注册服务号、订阅号流程

进入微信公众平台,选择注册类型,订阅号/服务号 填写基本信息 选择类型 选择订阅号或者服务号

【APICloud系列|33】移动应用软件加固步骤,适合所有的安卓应用市场

在腾讯开放平台下载应用加固工具legutools 下载安装打开 点击获取API密钥。链接: https://cloud.tencent.com/developer/article/1385239 一、登录腾讯云账号

怎么把图片内存变小尺寸保持不变呢。

在好多应用平台要求尺寸多少*多少&#xff0c;大小<50kb. 缩小图片的内存占用&#xff0c;但尺寸即分辨率不变&#xff0c;可以改变压缩的质量来实现。下面以PS为例&#xff1a; 1、用PS打开图片&#xff0c;然后选择文件菜单里的存储为&#xff0c;格式选择png。 2、选择…

【Java必备资料包】

适合所有大厂java开发工场师。 链接&#xff1a;https://pan.baidu.com/s/1wRxRDCGvex_G2aCZ6W57vw 提取码&#xff1a;e9xu

SaaS系列介绍之十一: SaaS商业模式分析

1 配置模式 中国企业很多是人治&#xff0c;管理弹性非常大&#xff0c;公司的政策经常变化&#xff0c;管理流程、业务变化也非常大&#xff0c;发展也非常快;一个公司今年是10个人&#xff0c;明年是100个人&#xff0c;后年可能是1000人。管理机制、方法处于经常变化的状态&…

真机x86 android分辨率,Android-x86入门之--启动参数设置

之前的文章里面我也有提到分辨率的设置&#xff0c;这里就详细说下。Android-x86启动的时候有四个选项&#xff0c;大家都知道&#xff0c;第一个是高密度&#xff0c;第二个是低密度&#xff0c;两个启动之后的效果是不一样的&#xff0c;一个图标大&#xff0c;一个小&#x…

【APICloud系列|32】iOS 上架去除Icon图像中的alpha通道或透明度

上架的时候你们有没有遇到过这个问题?? 打开图片的“显示简介”,你会发现有个叫“alpha通道”的东西,(如果是“是”你的图片就不能上架)如下图: 第一种方法 怎样解决。把你的图片用PS打开,如下图选择进行操作:

网站如何快速搭建即时响应客服系统

首先简单说明一下情况&#xff0c;公司原来的网站是用微起点快速建站做的&#xff0c;几天就搭建完成啦&#xff0c;最近又原生开发了一个大数据网站。 自己在原来的网站搭建了一个客服系统&#xff0c;后来老板不喜欢&#xff0c;我又给取消啦。 直入主题啦 登录百度账号 选…

在NetBeans,Eclipse,IntelliJ,OpenShift和Maven上使用WildFly 9

WildFly 9 CR1是最近发布的。 包括许多很酷的功能&#xff1a; 智能负载均衡 HTTP / 2和SPDY支持 新的离线CLI模式 正常关闭单节点 新的仅Servlet发行版 而且这超出了通常的Java EE 7兼容性&#xff01; 该博客是一个快速检查&#xff0c;以验证它是否可以在所有三个主要…

【CSS】font样式简写(转)- 不是很建议简写

一、字体属性主要包括下面几个 font-family&#xff0c;font-style&#xff0c;font-variant&#xff0c;font-weight&#xff0c;font-size&#xff0c;fontfont-family&#xff08;字体族&#xff09;: “Arial”、“Times New Roman”、“宋体”、“黑体”等;font-style&…

Bluetooth LE(低功耗蓝牙) - 第一部分

前言 在写这篇文章的时候&#xff0c;谷歌刚刚发布了Android Wear &#xff0c;摩托罗拉也发布了 Moto 360 智能手表。Android Wear的API还是相当基本的&#xff0c;是很好的文档材料&#xff0c;而且还会不断的更新&#xff0c;所以我不打算写一个关于他们的教程&#xff08;至…

Android查看web日志,详解Android WebView监听console错误信息

根据需求&#xff0c;我们要拿到h5的错误信息&#xff0c;并将error信息进行上报。查询了下Android WebView的API发现了WebChromeClient这个方法可以满足要求&#xff1a;Overridepublic boolean onConsoleMessage(ConsoleMessage consoleMessage) {//获取log的级别switch (con…

Hibernate READ_ONLY CacheConcurrencyStrategy如何工作

介绍 正如我前面所解释的 &#xff0c;企业的高速缓存需要勤奋。 由于数据在数据库&#xff08; 记录系统 &#xff09;和缓存层之间重复&#xff0c;因此我们需要确保两个单独的数据源不会分开。 如果缓存的数据是不可变的&#xff08;数据库和缓存都无法修改它&#xff09;&…

漫谈:Java和Python现在都挺火,我应该怎么选?Java和Python优缺点比较。

http://www.bossqiang.com/article/4 声明&#xff1a;这是一篇容易引起撕逼的文章&#xff0c;为了祖国和谐&#xff0c;人民安康&#xff0c;请各位看官尽量理性讨论。同时&#xff0c;这篇文章是面向一些初入行的朋友进行一些相对中肯一点的分析和建议而已&#xff0c;虽然…

Spring集成和Web服务

本文是我们名为“ Spring Integration for EAI ”的学院课程的一部分。 在本课程中&#xff0c;向您介绍了企业应用程序集成模式以及Spring Integration如何解决它们。 接下来&#xff0c;您将深入研究Spring Integration的基础知识&#xff0c;例如通道&#xff0c;转换器和适…

如何在微博首页放置一个二维码?

首先用photoshop打开作为微博背景的图片,还有二维码图片。 然后将二维码图片整合到背景图片的适当位置,并编写相关说明,如下图。 然后将图片保存到桌面。 打开微博,可以看到左侧现在是没有二维码的

RethinkDB创始人教你如何打造一个伟大的互联网产品

关于作者 我叫Slava Akhmechet&#xff0c;本人是 RethinkDB 的创始人之一&#xff0c;RethinkDB是开源&#xff0c;分布式数据库&#xff0c;旨在帮助开发人员与运营商在打造实时应用时处理无结构数据 如何打造一个伟大的互联网产品 假如你认可“销售定乾坤”的原则&#xff0…