一、进程前后台与状态

二、/proc与/sys介绍

三、 Linux作业控制

一、进程前后台与状态

1、前台进程和后台进程

前台进程

在 shell 提示处理打入命令后,创建一个子进程,运行命令, Shell 等待命令退出,然后返回到对用户给出提示符。这条命令与 Shell 异步运行,即在前台运行,用户在它完成之前不能执行别一个命令 。

后台进程

在 Shell 提示处打入命令,若后随一个 &, Shell 创建子进程运行此命令,但不等待命令退出,而直接返回到对用户给出提示。这条命令与 Shell 同步运行,即在后台运行。“后台进程必须是非交互式的” 。

2、进程状态

在多任务处理操作系统中,每个CPU在一个时间点上只能处理一个进程。在进程运行时,它对CPU时间和资源分配的要求会不断变化,从而为进程分配一个状态,它随着环境要求而改变。

3、进程优先级

Linux 进程调度及多任务:每个CPU在一个时间点上只能处理一个进程,通过时间片技术,Linux实际能够运行的进程和线程数可以超出实际可用的CPU及核心数量。

相对优先级 nice:由于不是每个进程都与其他进程同样重要,可告知进程调度程序为不同的进程使用不同的调度策略。常规系统上运行的大多数进程所使用的调度策略为 SCHED_OTHER (也称为SCHED_NORMAL),但还有其它一些调度策略用于不同的目的。SCHED_OTHER 调度策略运行的进程的相对优先级称为进程的 nice 值,可以有40种

不同级别的nice值。

nice 值越高: 表示优先级越低

例如+19,该进程容易将CPU 使用量让给其他进程。

nice 值越低: 表示优先级越高

例如-20,该进程更不倾向于让出CPU。

4、查看进程的nice级别

(1)、使用top查看nice级别

NI: 实际nice级别

PR: 将nice级别显示为映射到更大优先级队列

eg:-20映射到0,+19映射到39

(2)、使用ps查看nice级别

pid,command,nice可自由结合

[root@nebulalinux03 ~]# ps axo pid,command,nice --sort=-nice

[root@192 /]# ps axo pid,command,nice --sort=-nice

PID COMMAND NI

36 [khugepaged] 19

35 [ksmd] 5

1 /sbin/init 0

2 [kthreadd] 0

3 [migration/0] -

[root@nebulalinux03 ~]# ps axo pid,command,cls --sort=-nice

[root@192 /]# ps axo pid,command,cls --sort=-nice

PID COMMAND CLS

36 [khugepaged] TS

35 [ksmd] TS

1 /sbin/init TS

2 [kthreadd] TS

3 [migration/0] FF

[root@nebulalinux03 ~]# ps axo pid,cls --sort=-nice

[root@192 /]# ps axo pid,nice --sort=-nice

PID NI

36 19

35 5

1 0

2 0

3 -

TS 表示该进程使用的调度策略为SCHED_OTHER

启动具有不同nice级别的进程

启动进程时,通常会继承父进程的 nice级别,默认为0。

5、更改现有进程的nice级别

(1)、使用top更改nice级别

r 调整进程的优先级 (-20高) ---0--- (19低)

(2)、使用shell更改nice级别

[root@192 /]# sleep 7000 &

[1] 2536

[root@192 /]# renice -2010089

Usage:

renice [-n] priority [-p|--pid] pid [... pid]

renice [-n] priority -g|--pgrp pgrp [... pgrp]

renice [-n] priority -u|--user user [... user]

renice -h | --help

renice -v | --version

二、/proc与/sys介绍

1、/proc 正在运行的内核信息映射

主要输出: 进程信息

内存资源信息

磁盘分区信息等等

2、/sys 硬件设备的驱动程序信息

sysfs是一种基于ram文件系统和proc一样。

Sysfs文件系统是一个类似于proc文件系统的特殊文件系统,用于将系统中的设备组织成层次结构,并向用户模式程序提供详细的内核数据结构信息。其实,就是在用户态可以通过对sys文件系统的访问,来看内核态的一些驱动或者设备等。

[root@192 /]# cd sys/

[root@192 sys]# ls

block bus class dev devices firmware fs hypervisor kernel module power

三、 Linux作业控制

shell控制的是作业,而不是进程,shell还可以分前后台对作业进行控制。

1、进程和作业的区别:

区别:进程是一个程序在一个数据集上的一次执行,而作业是用户提交给系统的一个任务。

关系:一个作业通常包括几个进程,几个进程共同完成一个任务,即作业。

shell控制的是作业,而不是进程,shell还可以分前后台对作业进行控制。

2、什么是作业

一个正在执行的进程称为一个作业,而且作业可以包含一个或多个进程,尤其是当使用了管道和重定向命令

作业控制指的是:控制正在运行的进程的行为,比如:启动、停止、强制终止、恢复以及异步运行作业的这些功能,让shell可以在子进程运行期间返回接受其他命令。

一般而言,进程与作业控制相关联时,才被称为作业。

shell分前后台控制的不是进程,而是作业或者进程组,一个前台只能运行一个进程组或一个作业,而一个后台可以运行多个进程组和多个作业。

查看被挂起的进程( jobs )

[root@192 sys]# jobs

[1]+ Running sleep 7000 & (wd: /)

复到前台继续运行( fg )

[root@192 sys]# fg

sleep 7000 (wd: /)

恢复到后台继续运行( bg)

[root@192 sys]# bg %2 //让作业2在后台运行

linux 判断某进程 前台还是后台,Linux进程管理——进程前后台(优先级)以及作业控制等...相关推荐

  1. 高效管理 Linux 进程:如何后台执行程序、查看进程、终止任务

    目录 前言 一.nohup命令详解 1-1.nohup命令介绍 1-2.语法格式 1-2-1.基础语法介绍 1-2-2.执行脚本文件 1-2-3.执行python文件 1-2-4.拓展延申:在服务器上 ...

  2. 如何判断app在前台还是后台

    项目遇到一个轮训,有通知就toast.但是toast是可以不受actvity控制的,当我按home键让app常驻后台后,我要他不吐司,这时候我们需要判断app在前台还是后台. 发挥谷歌搜索的威力 Ch ...

  3. 进程前台运行后台运行的相关命令

    command& 让进程在后台运行 jobs 查看后台运行的进程 fg %n 让后台运行的进程n到前台来 bg %n 让进程n到后台去: ctrl + z 可以将一个正在前台执行的命令放到后台 ...

  4. 如何判断ABAP程序前台还是后台运行[sy-batch]

    可以通过系统变量sy-batch判断abap程序是前台运行还是后台运行,sy-batch等于'X'是后台运行,等于空就是前台运行.

  5. 如何在 Linux 上使用 kill 和 killall 来管理进程

    了解如何使用 ps.kill 和 killall 命令来终止进程并回收系统资源. 在 Linux 中,每个程序和守护程序daemon都是一个"进程process". 大多数进程代表 ...

  6. 前台和后台是要写两个工程吗_如何判断一个Bug属于前台还是后台

    这里的前台和后台也叫前端和后端.前台基本是能在页面上可看得见的错误,而后台是看不到的,如UI界面样式相关的错误不用判断肯定是前台的,用户数据问题基本是后台的. 前台一般的工作是获取.加载.计算.渲染数 ...

  7. Linux系列教程——Linux基本权限、Linux特殊权限、LinuxACL控制、Linux输入输出

    文章目录 1 Linux基本权限 1.权限基本概述 1.什么是权限? 2.为什么要有权限? 3.权限与用户之间的关系? 4.权限中的rwx分别代表什么含义? 2.权限设置示例 1.为什么要设定权限,我 ...

  8. linux必学的100个命令,Linux必学的60个命令

    inux必学的60个命令本文引用地址:http://www.eepw.com.cn/article/201610/305663.htm Linux提供了大量的命令,利用它可以有效地完成大量的工 作,如 ...

  9. Linux是什么?大牛十年Linux心得文档给你答案

    Linux是什么 Linux就是个操作系统: 它和Windows XP.Windows 7.Windows 10什么的一样就是一个操作系统而已! Linux能干什么: 它能当服务器,服务器上安装者各种 ...

  10. python守护进程进程池_Python3标准库:multiprocessing像线程一样管理进程

    Python Python开发 Python语言 Python3标准库:multiprocessing像线程一样管理进程 1. multiprocessing像线程一样管理进程 multiproces ...

最新文章

  1. winform中捕获程序未处理的所有异常
  2. (转)---再说卷积
  3. jquery滚动条到底部触发事件
  4. Android Studio常用Plugin及 手动安装 Plugins
  5. 基于CAD/CAM的三维控件
  6. keepalived实现高可用nginx反向代理的简单案例
  7. MATLAB编辑GUI界面
  8. leetcode扔鸡蛋问题总结
  9. 拓端tecdat|R语言中绘制ROC曲线和PR曲线
  10. cad解除块的快捷命令_47个快捷键50个CAD技巧,快收藏起来
  11. 艾永亮:这家酒店如何让你毫不犹豫点上五星好评?
  12. 标准粒子群算法(PSO)
  13. C/C++语言 结构体数组初始化 结构体数组元素全部置0 memset函数将结构体数组初始化
  14. 概率论考点之检验统计量(区间估计)
  15. 《Celeste》 开发者是如何精心制作“冲刺”的
  16. QQ被盗恢复原来QQ的好友有妙招
  17. 秃如其来第一步之安装JDK
  18. 事情往往不是想的那么糟
  19. box-sizing属性是什么作用?
  20. 年会弹幕文字_弹幕软件_互动游戏/活动管理平台/年会必备工具

热门文章

  1. Centos 启动盘制作与安装以及遇到的问题
  2. linux网络子系统分析(三)—— 设备无关层
  3. Android下播放YUV视频文件
  4. 错误使用 eig 输入矩阵包含 nan 或 inf_特斯拉AI主管提醒你神经网络的几大常见错误...
  5. 服务器上安装python anaconda最简明教程
  6. python smtplib发送邮件可直接运行代码
  7. ip地址与整数的相互转化
  8. sublime安装插件详细教程
  9. 区块如何防篡改_CFCA联盟链荣获“2020区块链技术与应用创新成果”奖
  10. linux 查看运行平台,linux查看程序运行相关命令