Linux前后台进程切换

(1).Linux前台进程与后台进程的区别

  前台进程:是在终端中运行的命令,那么该终端就为进程的控制终端,一旦这个终端关闭,这个进程也随之消失。

  后台进程:也叫守护进程(Daemon),是运行在后台的一种特殊进程,不受终端控制,它不需要终端的交互;Linux的大多数服务器就是使用守护进程实现的。比如Web服务器的httpd等。

(2).进程的前台与后台运行

  与系统任务相关的几个命令(了解):

& 用在一个命令的最后,可以把这个命令放到后台执行
<Ctrl>+z 将一个正在前台执行的命令放到后台,并暂停
jobs 查看当前有多少在后台运行的进程。这是一个作业控制命令
fg(foregroud  process) 将后台中的命令调至前台继续运行。如果后台中有多个命令,可以用fg [jobnumber]将选中的命令调出,jobnumber是通过jobs命令查到的后台正在执行的命令的序号(不是pid)
bg(backgroud  process) 将一个在后台暂停的命令,变成继续执行。如果后台中有多个命令,可以用bg %jobnumber将选中的命令调出,%jobnumber是通过jobs命令查到的后台正在执行的命令的序号(不是pid)

(3).恢复被挂起的进程

  首先准备一个实验环境,创建三个被挂起的进程

[xf@xuexi ~]$ vim 1.txt

[1]+  已停止               vim 1.txt
[xf@xuexi ~]$ vim 3.txt

[2]+  已停止               vim 3.txt
[xf@xuexi ~]$ vim 2.txt

[3]+  已停止               vim 2.txt
[xf@xuexi ~]$ ps -aux | grep vim
xf        10277  0.2  0.2 151796  5372 pts/0    T    14:02   0:00 vim 1.txt
xf        10284  0.4  0.2 151796  5352 pts/0    T    14:02   0:00 vim 3.txt
xf        10291  1.5  0.2 151796  5376 pts/0    T    14:02   0:00 vim 2.txt
xf        10299  0.0  0.0 112724   988 pts/0    S+   14:02   0:00 grep --color=auto vim

  接着查看后台进程

[xf@xuexi ~]$ jobs
[1]   已停止               vim 1.txt
[2]-  已停止               vim 3.txt
[3]+  已停止               vim 2.txt

  恢复vim 3.txt的进程

[xf@xuexi ~]$ fg 2
vim 3.txt

  

原文地址:https://www.cnblogs.com/diantong/p/10395312.html

时间: 2024-10-10 05:53:35

Linux前后台进程切换的相关文章

Linux 前后台进程切换(转)

Linux 前后台进程切换 当你用shell启动一个程序时,往往他是在前台工作的. 例如经常用PUTTY连接到远程服务器执行脚本的时候,如果本地网络中断后,这个时候前台进程就结束了,比较的懊恼,必须重新执行.因此有必要进行前后台进程的切换. 例如直接在终端里输入firefox,那么会打开firefox,但当你关闭此终端或者ctrl+c强制终止时,firefox也随机关闭了.你可以在执行时后面加一个&,这样就在后台工作了. Shell支持作用控制,有以下命令: 1. command  & 让

关于Linux前后台进程切换

对执行的命令后面加上&,直接放在后台执行 如python main.py --image_size 96 --output_size 48 --dataset faces --is_crop True --is_train True --epoch 300 --input_fname_pattern *.jpg & 用jobs可以查看当前正在运行的任务, jobs -l是查看所有正在运行的任务 对于正在运行的程序,如果之前没有使用&, 则首先ctrl+z将其暂停,然后 bg %1可

shell特殊变量和前后台任务切换方法

echo '$0获取当前执行的shell脚本的文件名:'$0 echo '$n获取当前执行的shell脚本的第N个参数值:''$1'=$1 '$2'=$2 '$3'=$3 echo '$*获取当前执行的shell脚本的所有参数:'$* echo '$#获取当前执行的shell脚本的命令行中参数总个数:'$# echo '$$获取当前执行的shell脚本的进程号(PID):'$$ sleep 2 & echo '$!获取执行上一个指令的PID:'$! echo '$?获取取执行上一个指令的返回值:

Linux内核设计第八周学习总结 理解进程调度时机跟踪分析进程调度与进程切换的过程

陈巧然 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 一.视频内容 Linux系统的一般执行过程 最一般的情况:正在运行的用户态进程X切换到运行用户态进程Y的过程 1. 正在运行的用户态进程X 2. 发生中断——save cs:eip/esp/eflags(current) to kernel stack, then load cs:eip(entry of a specific IS

Linux内核源码学习之进程切换细节整理

linux中的进程是个最基本的概念,进程从运行队列到开始运行有两个开始的地方, 一个就是switch_to宏中的标号1:"1:/t",//只要不是新创建的进程,几乎都是从上面的那个标号1开始的,而switch_to宏则是除了内核本身,所有的进程要 想运行都要经过的地方 另 一个就是ret_form_fork 这样看来,虽然linux的进程体系以及进程调度非常复杂,但是总体看来就是一个沙漏状, 对于系统中的每个新进程它首次被执行的过程必然是: sys_fork---->do_for

Linux进程调度(3):进程切换分析

3.调度函数schedule()分析 当kernel/sched.c:sched_tick()执行完,并且时钟中断返回时,就会调用kernel/sched.c:schedule()完成进程切换.我们也可以显示调用schedule(),例如在前面"Linux进程管理"的介绍中,进程销毁的do_exit()最后就直接调用schedule(),以切换到下一个进程. schedule()是内核和其他部分用于调用进程调度器的入口,选择哪个进程可以运行,何时将其投入运行.schedule通常都和一

Linux内核进程调度的时机和进程切换

陈铁+ 原创作品转载请注明出处 + <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 对于现代操作系统,多任务是必备的,在linux系统下,进程会不断的被内核调度,从X进程切换为Y进程,以实现用户所见到的多任务状态,下面我们就看一看这样的过程,分析一下内核如何对进程调度,以及进程间如何切换. 内核使用schedule()函数实现进程的调度,而通常的用户进程要无法主动调度这个函数,只能通过中断处理过程(包括时钟中断

Linux内核分析之理解进程调度时机跟踪分析进程调度与进程切换的过程

一.原理分析 1.调度时机 背景不同类型的进程有不同的调度需求第一种分类I/O-bond:频繁的进行I/O:通常会花费很多时间等待I/O操作的完成CPU-bound:计算密集型:需要大量的CPU时间进行运算 第二种分批处理进程(batch process):不必与用户交互,通常在后台运行:不必很快响应.典型的批处理程序:编译程序.科学计算实时进程(real-time process):有实时需求,不应被低优先级的进程阻塞:响应时间要短.要稳定.典型的实时进程:视频/音频.机械控制等交互式进程(i

Linux内核分析——理解进程调度时机跟踪分析进程调度与进程切换的过程

20135125陈智威 +原创作品转载请注明出处 +<Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 实验原理: 1.不同类型的进程有不同需求的调度需求:第一种分类:—I/O-bound:频繁的进行I/O,通常会花费很多时间等待I/O操作的完成—CPU-bound:计算密集型,需要大量的CPU时间进行运算第二种分类:—批处理进程:不必与用户交互,通常在后台运行:不必响应很快:—实时进程:有实时需求,不被低优先级的