文档章节

Shell前后台进程切换

realsa
 realsa
发布于 2016/07/23 11:47
字数 445
阅读 21
收藏 3
点赞 0
评论 0

在shell中,如果要运行某命令command,我们一般输入$ command即可。

如果需要程序后台运行,不要干扰前台的shell交互,我们一般输入$ command &

以gedit程序为例:

  • 1 查看当前有多少后台运行的命令(当前啥也没有)
fsj@fsj-Lenovo:~$ jobs
fsj@fsj-Lenovo:~$ 

其中jobs -l 选项可显示所有任务的 PID,jobs 的状态可以是 running, stopped, Terminated

  • 2 后台运行
fsj@fsj-Lenovo:~$ gedit &
[1] 31851
fsj@fsj-Lenovo:~$ jobs
[1]+  Running                 gedit &
fsj@fsj-Lenovo:~$ jobs -l
[1]+ 31851 Running                 gedit &
fsj@fsj-Lenovo:~$ 

可以看到gedit在后台处于running状态。其中[1]指的是job号为1

  • 3 根据job号来杀死该后台进程: kill %jobnumber
fsj@fsj-Lenovo:~$ kill %1
fsj@fsj-Lenovo:~$ jobs
[1]+  Terminated              gedit
fsj@fsj-Lenovo:~$ jobs
fsj@fsj-Lenovo:~$ 

也可以用$ kill pid来杀死指定进程。

  • 3 正常启动

输入图片说明

可以看到该前台进程占据了终端,我们不能做其他事情。 按ctrl+c可以终止该进程

  • 4 挂起前台进程: ctrl+z

输入图片说明

  • 5 将一个在后台(background)暂停的命令,变成继续执行: bg

输入图片说明

  • 6 将后台中的命令调后前台(foreground)继续执行: fg

输入图片说明

可以看到terminal被前台程序占据了。

最后ctrl+c终止该进程。这便是shell中前后台进程切换的一个完整例子。

除此之外,如果后台有多个命令,那么fgbg都可以加参数,指定job号:

$ bg %jobnumber
$ fg %jobnumber

这里加不加%,效果一样。

而kill命令通过job号杀死进程的时候则必须加百分号:

$ kill %jobnumber

我猜是应该是避免jobnumber和pid产生歧义吧

输入图片说明

参考

© 著作权归作者所有

共有 人打赏支持
realsa

realsa

粉丝 30
博文 84
码字总数 107087
作品 0
广州
程序员
Linux Shell的 & 、&& 、 ||

& 放在启动参数后面表示设置此进程为后台进程 默认情况下,进程是前台进程,这时就把Shell给占据了,我们无法进行其他操作,对于那些没有交互的进程,很多时候,我们希望将其在后台启动,可以...

hanzhankang
2014/02/24
0
0
36.每日一个Linux命令----前后台进程切换(fg、bg、jobs、&)

描述:fg 和 bg 命令是进程的前后台调度命令。 操作: Ctrl + c 终止并退出当前前台命令的执行,回到shell Ctrl + z 暂停前台命令,将该进程放入后台,回到shell jobs 查看当前在后台执行的命...

詹玉香
2016/07/14
15
0
linux学习笔记五

笔记摘抄自《linux操作系统基础及应用》 作业控制 正在执行的一个或者多个程序可形成一个作业。使用管道命令和重定向命令,一个作业可以启动多个进程。 如 : cat/etc/passwd | grep root | w...

东风冷雪
2017/11/18
0
0
后台执行好工具--screen

1.敲入命令screen会创建一个跑着shell的单一窗口,在这里面你可以跑你所需要的程序 2.新建后台的screen,并带有名字,screen -dmS XXXX,然后Ctrl+a d退出刚创建的窗口(回到进入screen前的环境...

flynewton
2010/09/13
0
1
Linux系统 shell基础(二)

一、管道符 管道符:管道符号用于把前一个命令的结果传递给另一条命令 示例: 1、统计一个文件的行数 命令:cat /etc/passwd | wc -l 2、统计当前文件夹下文件个数 命令: ls | wc -l 3、统计...

whytl
01/12
0
0
shell特殊变量和前后台任务切换方法

echo '$0获取当前执行的shell脚本的文件名:'$0 echo '$n获取当前执行的shell脚本的第N个参数值:''$1'=$1 '$2'=$2 '$3'=$3 echo '$获取当前执行的shell脚本的所有参数:'$ echo '$#获取当前...

qq441009395
2017/07/28
0
0
Linux 进程后台运行的几种方式(screen)

Ctrl+z/bg/nohup/setsid/& 在Linux中,如果要让进程在后台运行,一般情况下,我们在命令后面加上&即可,实际上,这样是将命令放入到一个作业队列中了: ./rsync.sh & jobs 但是如上方到后台执...

侯召顺
2017/10/27
0
0
Linux进程关闭和后台运行解析

1.问题背景 Java是跨平台的,大部分程序也都是在Linux服务器上运行的。但是很多朋友其实对服务器了解并不多,对相关知识也是一知半解。很多概念可能知道,但是并不十分清楚,仅仅是基本运用。...

蛙牛
2016/11/27
2.9K
7
Linux命令nohup+screen

如果想在关闭ssh连接后刚才启动的程序继续运行怎么办,可以使用nohup。但是如果要求第二天来的时候,一开ssh,还能查看到昨天运行的程序的状态,然后继续工作,这时nohup是不行了,需要使用s...

squanchao
2016/06/29
24
0
【Linux学习】之 Shell初识

Shell 的 历史: - 1977年 Bourne Shell发布,并作为UNIX 7的默认Shell。 - 由于BourneShell 一直没有正式的版本号且交互性不好, 加州大学伯克利分校的一名学生编写了 C Shell,由于不支持正...

fanfan4569
2017/11/16
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

虚拟机怎么安装vmware tools

https://blog.csdn.net/tjcwt2011/article/details/72638977

AndyZhouX
10分钟前
0
0
There is no session with id[xxx]

参考网页 https://blog.csdn.net/caimengyuan/article/details/52526765 报错 2018-07-19 23:04:35,330 [http-nio-1008-exec-8] DEBUG [org.apache.shiro.web.servlet.SimpleCookie] - Found......

karma123
11分钟前
0
0
vue-router懒加载

1. vue-router懒加载定义 当路由被访问的时候才加载对应组件 2. vue-router懒加载作用 当构建的项目比较大的时候,懒加载可以分割代码块,提高页面的初始加载效率。 ###3. vue-router懒加载实...

不负好时光
18分钟前
0
0
庆祝法国队夺冠:用Python放一场烟花秀

天天敲代码的朋友,有没有想过代码也可以变得很酷炫又浪漫?今天就教大家用Python模拟出绽放的烟花庆祝昨晚法国队夺冠,工作之余也可以随时让程序为自己放一场烟花秀。 这个有趣的小项目并不...

猫咪编程
20分钟前
0
0
SpringBoot | 第七章:过滤器、监听器、拦截器

前言 在实际开发过程中,经常会碰见一些比如系统启动初始化信息、统计在线人数、在线用户数、过滤敏高词汇、访问权限控制(URL级别)等业务需求。这些对于业务来说一般上是无关的,业务方是无需...

oKong
34分钟前
5
0
存储结构分四类:顺序存储、链接存储、索引存储 和 散列存储

存储结构分四类:顺序存储、链接存储、索引存储 和 散列存储 存储结构分四类:顺序存储、链接存储、索引存储 和 散列存储。 顺序结构和链接结构适用在内存结构中。 顺序表每个单元都是按物理...

DannyCoder
44分钟前
1
0
Firefox 61已经为Ubuntu 提供支持

最新和最好的Mozilla Firefox 61 “Quantum”网络浏览器已经为Ubuntu Linux操作系统的用户提供了支持,现在可以通过官方软件库进行更新。 Mozilla于2018年6月26日发布了Firefox 61版本,该版...

六库科技
今天
0
0
Win10升级后执行系统封装(Sysprep)报错

开始封装 一年多以前开始给公司封装Win10系统,便于统一给公司电脑初始化携带各种软件的系统,致力于装完既可以开发的状态。那时候最新的版本是Win10 1703版本,自然就以他为母盘,然后结合V...

lyunweb
今天
40
0
php 性能优化

#什么情况下会遇到性能问题 PHP 语法使用的不恰当

to_be_better
今天
0
0
Jenkins 构建触发器操作详解

前言 跑自动化用例每次用手工点击jenkins出发自动化用例太麻烦了,我们希望能每天固定时间跑,这样就不用管了,坐等收测试报告结果就行。 一、定时构建语法 * * * * * (五颗星,中间用空格隔...

覃光林
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部