




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第第页Linux下进程相关知识1.ps命令
进程是在你的系统上运行的程序。它们由内核管理,每个进程都有一个与之关联的ID,称为进程ID((PI)D)。这个PID是按照进程创建的顺序分配的。
运行ps命令查看正在运行的进程列表:
ubuntu@ubuntu:~$
ps
PID
TTY
(TI)ME
CMD
3309
pts/1
0000
bash
3794
pts/1
0000
psubuntu@ubuntu:~$
PID:进程ID
TTY:控制与进程相关联的终端
TIME:总(CPU)使用时间
CMD:可执行/命令的名称
如果你看一下ps的man手册,你会发现有很多命令选项可以传递,它们会根据你想使用的选项而变化输出结果。
ubuntu@ubuntu:~$
ps
--help
allUsage:
ps
[options]B(asic)
options:
-A,
-e
all
processes
-a
all
with
tty,
except
session
le(ad)e(rs)
a
all
with
tty,
including
other
users
-d
all
except
session
leaders
-N,
--deselect
nega(te)
selection
r
only
running
processes
T
all
processes
on
this
terminal
x
processes
without
controlling
ttysSelection
by
list:
-C
command
name
-G,
--Group
real
group
id
(or)
name
-g,
--group
session
or
effective
group
name
-p,
p,
--pid
process
id
--ppid
parent
process
id
-q,
q,
--qu(ic)k-pid
process
id
(quick
mode)
-s,
--sid
session
id
-t,
t,
--tty
terminal
-u,
U,
--user
effective
user
id
or
name
-U,
--User
real
user
id
or
name
The
selection
options
take
as
their
argument
either:
a
comma-separated
list
e.g.
'-u
root,nobody'
or
a
blank-separated
list
e.g.
'-p
123
4567'Output
formats:
-F
extra
full
-f
full-format,
including
command
lines
f,
--forest
ascii
art
process
tree
-H
show
process
hierarchy
-j
jobs
format
j
B(SD)
job
control
format
-l
long
format
l
BSD
long
format
-M,
Z
add
security
data
(for
SE(Linux))
-O
preloaded
with
default
columns
O
as
-O,
with
BSD
personality
-o,
o,
--format
user-defined
format
s
signal
format
u
user-oriented
format
v
virtual
memory
format
X
register
format
-y
do
not
show
flags,
show
rss
vs.
addr
(used
with
-l)
--context
display
security
context
(for
SELinux)
--headers
repeat
header
lines,
one
per
page
--no-headers
do
not
header
at
all
--cols,
--columns,
--width
set
screen
width
--rows,
--lines
set
screen
heightShow
threads:
H
as
if
they
were
processes
-L
possibly
with
LWP
and
NLWP
columns
-m,
m
after
processes
-T
possibly
with
SPID
columnMiscellaneous
options:
-c
show
scheduling
class
with
-l
option
c
show
true
command
name
e
show
the
environment
after
command
k,
--sort
specify
sort
order
as:
[+|-]key[,[+|-]key[,...]]
L
show
format
specifiers
n
display
numeric
uid
and
wchan
S,
--cumulative
include
some
dead
child
process
data
-y
do
not
show
flags,
show
rss
(only
with
-l)
-V,
V,
--version
display
version
information
and
exit
-w,
w
unlimited
output
width
--help
display
help
and
exitFor
more
det(ai)ls
see
ps(1).
常用的操作命令:
ps
aux
USER:有效用户(我们正在使用其访问权限的用户)
PID:进程号
%CPU:CPU使用时间除以进程运行时间
%MEM:进程的常驻集大小与机器上物理内存的比率
VSZ:整个进程的虚拟内存使用情况
RSS:常驻集大小,任务使用的非交换物理内存
TTY:控制与进程关联的终端
STAT:进程状态码
START:进程的开始时间
TIME:总CPU使用时间
COMMAND:可执行文件/命令的名称
另一个非常有用的命令是top命令,top为你提供有关系统上运行的进程的实时信息,而不是快照。默认情况下,你会每10秒刷新一次。top是一个非常有用的工具,可以查看哪些进程占用了大量资源。此处我们对top命令不做过多的讲解,想了解的小伙伴可以查看我之前的文章,有对top命令做详细的讲解。
2.进程的细节
在我们深入了解进程的更多实际应用之前,我们必须了解它是什么以及它是如何工作的。
我们上面说过,进程是系统上正在运行的程序,更准确地说,它是系统分配内存、CPU、I/O以使程序运行的过程。一个进程是一个正在运行的程序的实例,打开3个终端窗口,在两个窗口中运行cat命令,不传递任何选项(cat进程将作为一个进程保持打开状态,因为它期望stdin)。现在在第三个窗口运行:psaux|grepcat。将看到cat有两个进程,尽管它们调用的是同一个程序。
内核负责进程,当我们运行一个程序时,内核将程序的代码加载到内存中,确定和分配资源,然后监视每个进程:
进程的状态
进程正在使用和接收的资源
进程所有者
进程(信号)处理
基本上所有的其他事情
所有进程都在占用资源,内核的工作是确保进程根据自身需求获得正确数量的资源。当一个进程结束时,它所使用的资源将被释放给其他进程使用。
3.进程创建
当创建一个新进程时,现有进程基本上会使用称为fork系统调用的函数克隆自己。fork系统调用创建了一个基本相同的子进程,这个子进程有一个新的进程ID(PID),原始进程成为它的父进程,并有一个称为父进程IDPPID的东西。之后,子进程可以继续使用其父进程之前使用的相同程序,或者更经常地使用execve系统调用来启动一个新程序。这个系统调用破坏了内核为该进程设置的内存管理,并为新程序设置了新的内存管理。
l选项为我们提供了正在运行的进程的“长格式”甚至更详细的视图。你会看到一个标记为PPID的列,这是父ID。现在看看你的终端,你将看到正在运行的进程是你的shell,因此在我的系统上有一个运行bash的进程。现在请记住,当你运行psl命令时,是从运行bash的进程中运行它的。bashshell的PID是psl命令的PPID。
当系统启动时,内核创建了一个名为init的进程,它的PID为1。除非系统关闭,否则无法终止init进程。它以根权限运行,并运行许多保持系统运行的进程。
4.进程终止
上面我们知道创建进程时会发生什么,那么当我们不再需要它时会发生什么呢?
进程可以使用_exit系统调用退出,这将释放进程用于重新分配的资源。因此,当一个进程准备终止时,它会用一个叫做终止状态的东西让内核知道它为什么要终止。通常情况下,状态为0表示进程终止成功。然而,这还不足以完全终止一个流程。父进程必须通过使用等待系统调用来确认子进程的终止,这是为了检查子进程的终止状态。
孤儿进程当父进程在子进程之前死亡时,内核知道它不会得到一个等待调用,所以它会让这些进程成为“孤儿”,并将它们置于init(记住所有进程的父进程)的照顾下。init将最终为这些孤儿执行等待系统调用,以便它们可以终止。
僵尸进程当子进程终止而父进程还没有调用wait时会发生什么?我们仍然希望能够看到子进程是如何终止的,因此即使子进程完成了,内核也会将子进程变成僵尸进程。子进程使用的资源仍然被释放给其他进程使用,但是进程表中仍然有这个僵尸进程的条目。僵尸进程也不能被杀死,因为它们在技术上是“死亡”的,所以你不能使用信号来杀死它们。最终,如果父进程调用等待系统调用,僵尸进程将消失,这被称为“收割”。如果父进程没有执行等待调用,init将收养僵尸进程并自动执行等待并移除僵尸进程。僵尸进程太多可能是一件坏事,因为它们会占用进程表上的空间,如果它被填满,就会阻止其他进程运行。
5.信号
信号是对进程的通知,告诉它发生了什么事情。
为什么有信号?
它是软件中断,有很多用途:
用户可以输入一个特殊的终端字符(Ctrl-C)或(Ctrl-Z)来终止、中断或挂起进程
(硬件)问题发生时,内核想要通知进程
软件问题发生时,内核想要通知进程
进程(通信)的方式
信号处理
当一个信号由某个事件生成时,它被传递给一个进程,在传递之前它被认为处于挂起状态。当进程运行时,信号将被传递。但是,进程具有信号掩码,如果指定的话,它们可以将信号传递设置为阻塞。当一个信号被传递时,进程可以做很多事情:
忽略信号
“捕获”信号并执行特定的处理程序例程
进程可以终止,而不是正常的退出系统调用
阻塞信号,取决于信号掩码
常见的信号
每个信号都由具有符号名的整数定义,符号名的形式为SIGxxx。一些最常见的信号是:
SIGHUP或HUP或1:挂机
SIGINT或INT或2:中断
SIGKILL或KILL或9:杀死
SIGSEGV或SEGV或11:分割错误
SIGTERM或TERM或15:软件终止
SIGSTOP或STOP:停止
数字会随着信号的变化而变化,所以通常用它们的名字来表示。
有些信号是不可阻挡的,例如SIGKILL信号。KILL信号杀死进程。
6.kill命令
可以发送终止进程的信号,这样的命令被命名为kill命令。
kill
12345
12345是要终止的进程的PID。默认情况下,它发送一个TERM信号。SIGTERM信号被发送到进程,进程释放其资源并保存其状态来请求终止进程。
还可以使用kill命令指定一个信号:
kill
-9
12345
这将运行SIGKILL信号并终止进程。
SIGHUP,SIGINT,SIGTERM,SIGKILL,SIGSTOP信号
这些信号看起来都相似,但它们确实有不同之处。
SIGHUP挂起,当控制终端关闭时发送给进程。例如,如果关闭了一个终端窗口,其中正在运行一个进程,那么将得到一个SIGHUP信号。
SIGINT是一个中断信号,因此可以使用Ctrl-C,系统将尝试优雅地终止进程
SIGTERM终止进程,但允许它先做一些清理工作
SIGKILL杀死进程,不做任何清理
SIGSTOP停止/挂起进程
7.进程优先级
当你在(电脑)上同时运行多个程序时,比如Ch(rom)e、MicrosoftWord或Photoshop,看起来这些进程是同时运行的,但事实并非如此。
进程使用CPU的时间,称为时间片。然后它们暂停几毫秒,另一个进程得到一点时间切片。默认情况下,进程调度以这种循环方式进行。每个进程都有足够的时间片,直到它完成处理。内核处理所有这些进程的切换,并且大多数时候它都做得很好。
进程无法决定何时以及多长时间获得CPU时间,如果所有进程正常运行,它们将大致获得相同数量的CPU时间。但是,有一种方法可以用一个不错的值来影响内核的进程调度(算法)。优先级它的意思是进程有一个数字来确定它们对CPU的优先级。数值高意味着进程很好,对CPU的优先级较低,数值低或为负数意味着进程不是很好,它想要尽可能多地获得CPU。
要更改进程优先级别,可以使用nice和renice命令:
nice
-n
5
apt
upgraderenice
10
-p
3245
nice命令用于设置新进程的优先级。renice命令用于设置已存在进程的优先级。
8.进程状态
我们再来看一下:psaux命令
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 无息贷款合同
- 工程服务外包合同
- 安装工程分包合同协议书
- 学校租赁校舍合同书
- 接手项目合同协议
- 出让合同解除协议
- 广告播放合同协议
- 钢材贸易合同协议
- 劳资协议双向合同
- 品种转让协议合同
- GA 2108-2023警鞋礼服男皮鞋
- 四川省乐山市夹江县2023-2024学年八年级下学期期末数学试题
- 2024版《供电营业规则》考试复习题库大全-上(选择、判断题)
- 消化内科疾病临床路径
- JBT 14713-2024 锂离子电池用连续式真空干燥系统技术规范(正式版)
- 四川省泸州市龙马潭区2022-2023学年六年级下学期期末考试语文试卷
- 睡眠中心管理系统技术要求
- 金属非金属矿山重大事故隐患排查表
- 4.22世界地球日绿水青山就是金山银山爱护地球环境讲好地球故事宣传课件
- 飞机知识科普儿童课件
- 信息化运维服务服务质量保障方案
评论
0/150
提交评论