Linux学习之进程二(进程查看)

一、进程查看

静态查看命令:ps

ps aux   <==查看系统所有的进程数据

ps -lA     <==也是查看所有系统的进程数据

ps axjf    <==连同部分进程数状态

参数:

-A:所有的进程均显示出来,与-e有相同的作用

-a:与terminal无关的所有进程

-u:与有效用户相关的进程

x:通常与a一起使用,可以列出较为完整的信息

输出格式:

l:较长、较详细的将该PID的信息列出

j:工作的格式

-f:做一个更为完整的输出


仅列出自己的bash相关进程:

ps -l


上图中,列出进程的格式为:

F    S UID PIDPPID C PRI NI ADDR SZ WCHAN TTY TIME CMD

F:是进程标志,表示该进程的权限,若为4表示权限为root,若为1表示该进程仅可复制,不能执行。

S:表示该进程的状态,若为R表示正在运行,S表示睡眠,T表示停止,D不可唤醒的睡眠状态,Z表示僵尸状态


列出系统的所有进程:

ps  aux或

ps -lA


僵尸进程:僵尸进程是指进程已经执行完毕,但是仍在内存中,一般是因为该进程的父进程无法将该进程结束掉。如果某个进程的CMD后面还跟着<defunct>就表示该进程为僵尸进程。


top:动态地查看进程状态

top [-d 数字] :-d后跟秒数,表示进程界面多长时间更新一次,默认情况下更新时间为5s

top [-bnp]

-b:以批次的方式执行top命令

-n:与-b搭配,意义是需要进行几次的top的输出结果

-p:监测某个PID进程

top执行过程中可以使用的按键:

?:显示在top当中可以输入的按键

P(大写):以CPU使用率排序显示

M:以内存使用率排序显示

N:以PID排序显示

T:以该进程使用CPU的时间积累排序显示

k:给予某个PID一个信号,杀掉

q:离开

我们用top命令查看一下目前系统的进程状态:


图中需要注意的有:

第二行的zombie表示僵尸进程的数量,如果该值不是零就需要查找哪个进程是僵尸进程;

第三行的%wa表示I/Owait,系统变慢的原因往往都是I/O产生的问题;

第四行和第五行分别表示物理内存与虚拟内存(swap)的使用情况,swap的使用要尽量少,如果swap大量使用就表示物理内存不够用。

下面的每个进程使用资源的情况中,PR表示Priority,即优先级,该值越小优先级越高;NI表示Nice,与PR有关,也是越小越先执行。

如果想保存top的输出信息,使用top -b -n 2 > /tmp/top.txt就可以了。


pstree命令:查看进程树

pstree [-AUpu]

-A:各进程树之间以ASCII字符来连接

-U:各进程树之间以utf8字符来连接

-p:同时列出每个进程的PID

-u:同时列出每个进程的所属账号名称

例:pstree -Aup


从图中可以看出,所有的进程都是依附在init这个进程下面的,观察可发现该进程的进程号为1.它是Linux主动调用的第一个进程。其实该进程是一个内核启动的用户级进程,内核自启动之后第一个运行的就是init进程。






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Linux进程管理有很多命令可以使用,其中常用的有以下几个: 1. ps: 显示当前系统中运行的进程。 2. top: 实时显示系统中所有进程的详细信息。 3. pkill: 杀死进程。 4. kill: 终止进程。 5. nice: 调整进程的优先级。 6. renice: 更改进程的优先级。 7. nohup: 使进程在你登出系统后仍然运行。 8. jobs: 显示当前系统中所有后台运行的进程。 9. fg: 将后台进程转移到前台。 10. bg: 将前台进程转移到后台。 ### 回答2: 进程是操作系统中的一个重要概念,Linux也不例外。Linux中的进程管理主要涉及进程创建、销毁、调度和通信等方面。在进程管理中,进程控制块(PCB)是一个重要的概念。 进程的创建通常由fork()系统调用实现,该系统调用会复制当前进程,产生一个子进程,然后子进程会继续执行接下来的代码逻辑。在创建进程时,Linux会为每个进程分配一个唯一的PID,并将进程的相关信息保存在PCB中。进程退出时,会释放相关资源,并在进程表中删除该进程的PCB等。 进程的调度由Linux内核完成,它决定了每个进程何时开始运行、何时停止以及它们的优先级。在进程调度过程中,内核会根据进程优先级来选择下一个要运行的进程。如果有多个可运行进程,则会按照分时调度算法,轮流选择每个进程运行。内核还提供了nice值用于控制进程的优先级。 进程通信是多个进程之间传输消息和共享资源的过程。在Linux中,有多种进程通信机制,如管道、套接字、信号量和共享内存等。每种通信机制都有自己的优缺点,适用于不同的场景。 总之,在Linux中进行进程管理是非常重要的,它能够确保系统的正常运行、提高系统的安全性和可靠性。对于Linux系统管理员来说,进程管理也是一项必不可少的技能。对于开发者来说,也需要深入理解Linux进程管理的相关知识,以便更好地利用操作系统的功能来完成自己的开发工作。 ### 回答3: 进程管理是Linux系统中最重要的一个功能,它可以帮助我们掌握计算机系统的运行情况,优化系统性能和保护系统安全。在Linux中,进程管理包括了进程的创建、删除、调度、信号传递等方面。本文将继续讲述进程管理的一些内容,主要包括进程间的通信、进程优先级、进程调度等方面。 一、进程间的通信 在Linux系统中,进程之间可以通过多种方式进行通信,例如管道、信号、共享内存、消息队列等。其中,管道是最简单的一种通信方式,它是一个单向的字节流,通信的两端分别是一个读端和一个写端。读端从管道中读取数据,写端向管道中写入数据。信号是用来通知进程发生了某个事件,接收信号的进程可以根据信号的类型做出相应的处理。共享内存是一种高效的通信方式,它允许多个进程访问同一块内存空间,从而避免了数据拷贝的开销。消息队列是一个消息传递的队列,发送进程将消息插入队列中,接收进程从队列中读取消息。 进程优先级 在Linux中,进程的优先级决定了它们在调度器中的调度顺序。进程的优先级范围是-20到19,优先级越高,表示进程越重要。可以通过nice命令来改变进程的优先级,它接受一个优先级参数,优先级越高,对应的nice值越低。例如,将进程的优先级调整为最高可以这样做:nice -20 pid。SCHED_RR和SCHED_FIFO是两种实时调度策略,它们可以用来保证进程在预定的时间内得到调度,在调度时优先级高的进程先被调度。 三、进程调度 进程调度是系统的核心功能之一,它负责将CPU时间分配给多个进程。在Linux中,进程调度是由内核的调度器完成的,调度器会根据进程的优先级、调度策略、进程状态等因素来决定进程的调度顺序。除了内核自带的调度器外,Linux还允许用户自定义调度器,例如CFS和O(1)调度器等。CFS调度器是Linux内核中默认的调度器,它将CPU时间按照比例分配给各个进程,从而实现公平的调度;O(1)调度器则采用了更为简单的时间片轮转算法,保证了调度效率的同时也降低了系统负担。 总之,进程管理是Linux系统中最为重要的一个功能,它包括了进程的创建、删除、调度、信号传递、进程间通信、进程优先级等方面。掌握这些知识可以帮助我们更好地管理系统资源,提高系统的性能和安全性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值