1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > linux 判断某进程 前台还是后台 Linux进程管理——进程前后台(优先级)以及作业控制等...

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

时间:2024-07-08 04:52:19

相关推荐

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 -089

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在后台运行

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。