linux 判断某进程 前台还是后台,Linux进程管理——进程前后台(优先级)以及作业控制等...
一、进程前后台与状态
二、/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进程管理——进程前后台(优先级)以及作业控制等...相关推荐
- 高效管理 Linux 进程:如何后台执行程序、查看进程、终止任务
目录 前言 一.nohup命令详解 1-1.nohup命令介绍 1-2.语法格式 1-2-1.基础语法介绍 1-2-2.执行脚本文件 1-2-3.执行python文件 1-2-4.拓展延申:在服务器上 ...
- 如何判断app在前台还是后台
项目遇到一个轮训,有通知就toast.但是toast是可以不受actvity控制的,当我按home键让app常驻后台后,我要他不吐司,这时候我们需要判断app在前台还是后台. 发挥谷歌搜索的威力 Ch ...
- 进程前台运行后台运行的相关命令
command& 让进程在后台运行 jobs 查看后台运行的进程 fg %n 让后台运行的进程n到前台来 bg %n 让进程n到后台去: ctrl + z 可以将一个正在前台执行的命令放到后台 ...
- 如何判断ABAP程序前台还是后台运行[sy-batch]
可以通过系统变量sy-batch判断abap程序是前台运行还是后台运行,sy-batch等于'X'是后台运行,等于空就是前台运行.
- 如何在 Linux 上使用 kill 和 killall 来管理进程
了解如何使用 ps.kill 和 killall 命令来终止进程并回收系统资源. 在 Linux 中,每个程序和守护程序daemon都是一个"进程process". 大多数进程代表 ...
- 前台和后台是要写两个工程吗_如何判断一个Bug属于前台还是后台
这里的前台和后台也叫前端和后端.前台基本是能在页面上可看得见的错误,而后台是看不到的,如UI界面样式相关的错误不用判断肯定是前台的,用户数据问题基本是后台的. 前台一般的工作是获取.加载.计算.渲染数 ...
- Linux系列教程——Linux基本权限、Linux特殊权限、LinuxACL控制、Linux输入输出
文章目录 1 Linux基本权限 1.权限基本概述 1.什么是权限? 2.为什么要有权限? 3.权限与用户之间的关系? 4.权限中的rwx分别代表什么含义? 2.权限设置示例 1.为什么要设定权限,我 ...
- linux必学的100个命令,Linux必学的60个命令
inux必学的60个命令本文引用地址:http://www.eepw.com.cn/article/201610/305663.htm Linux提供了大量的命令,利用它可以有效地完成大量的工 作,如 ...
- Linux是什么?大牛十年Linux心得文档给你答案
Linux是什么 Linux就是个操作系统: 它和Windows XP.Windows 7.Windows 10什么的一样就是一个操作系统而已! Linux能干什么: 它能当服务器,服务器上安装者各种 ...
- python守护进程进程池_Python3标准库:multiprocessing像线程一样管理进程
Python Python开发 Python语言 Python3标准库:multiprocessing像线程一样管理进程 1. multiprocessing像线程一样管理进程 multiproces ...
最新文章
- winform中捕获程序未处理的所有异常
- (转)---再说卷积
- jquery滚动条到底部触发事件
- Android Studio常用Plugin及 手动安装 Plugins
- 基于CAD/CAM的三维控件
- keepalived实现高可用nginx反向代理的简单案例
- MATLAB编辑GUI界面
- leetcode扔鸡蛋问题总结
- 拓端tecdat|R语言中绘制ROC曲线和PR曲线
- cad解除块的快捷命令_47个快捷键50个CAD技巧,快收藏起来
- 艾永亮:这家酒店如何让你毫不犹豫点上五星好评?
- 标准粒子群算法(PSO)
- C/C++语言 结构体数组初始化 结构体数组元素全部置0 memset函数将结构体数组初始化
- 概率论考点之检验统计量(区间估计)
- 《Celeste》 开发者是如何精心制作“冲刺”的
- QQ被盗恢复原来QQ的好友有妙招
- 秃如其来第一步之安装JDK
- 事情往往不是想的那么糟
- box-sizing属性是什么作用?
- 年会弹幕文字_弹幕软件_互动游戏/活动管理平台/年会必备工具
热门文章
- Centos 启动盘制作与安装以及遇到的问题
- linux网络子系统分析(三)—— 设备无关层
- Android下播放YUV视频文件
- 错误使用 eig 输入矩阵包含 nan 或 inf_特斯拉AI主管提醒你神经网络的几大常见错误...
- 服务器上安装python anaconda最简明教程
- python smtplib发送邮件可直接运行代码
- ip地址与整数的相互转化
- sublime安装插件详细教程
- 区块如何防篡改_CFCA联盟链荣获“2020区块链技术与应用创新成果”奖
- linux 查看运行平台,linux查看程序运行相关命令