Linux系统管理---进程管理(查看进程、终止进程、更改进程优先级)

2024-04-28 19:08

本文主要是介绍Linux系统管理---进程管理(查看进程、终止进程、更改进程优先级),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

查看进程

ps

  • ps aux

查看所有进程,使用BSD操作系统格式

  • ps -le

查看系统所有进程,使用Linux标准命令格式


参数
- a :显示一个终端的所有进程,
- u :显示进程的归属用户及内存的使用情况
- x :显示没有控制终端的进程
- -l :长格式显示。显示更加详细的信息
- -e :显示所有进程,和-A作用一致

输出:

[root@localhost ~]# ps aux
USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root          1  0.0  0.1  19348  1616 ?        Ss   Aug01   0:02 /sbin/init
root          2  0.0  0.0      0     0 ?        S    Aug01   0:00 [kthreadd]
root          3  0.0  0.0      0     0 ?        S    Aug01   0:00 [migration/0
root          4  0.0  0.0      0     0 ?        S    Aug01   0:00 [ksoftirqd/0
root          5  0.0  0.0      0     0 ?        S    Aug01   0:00 [stopper/0]
root          6  0.0  0.0      0     0 ?        S    Aug01   0:00 [watchdog/0]
root          7  0.1  0.0      0     0 ?        S    Aug01   0:37 [events/0]
root          8  0.0  0.0      0     0 ?        S    Aug01   0:00 [events/0]
...
参数含义
USER该进程是由哪个用户产生的
PID进程的ID号
%CPU改进程占用的CPU资源的百分比,占用越高,进程越耗费资源
%MEM该进程占用的物理内存的百分比,占用越高,进程越耗费资源
VSZ该进程占用的虚拟内存大小,单位是KB
RSS该进程占用的物理内存大小,单位是KB
TTY该进程是在哪个终端中运行的。tty1-tty7表示本地控制台,pts/0-255表示虚拟终端
STAT进程状态。常见状态有 R:运行 S:睡眠 T:停止状态 s:包含子进程 +:位于后台
START该进程的启动时间
TIME该进程占用CPU的运算时间,不是系统时间
COMMAND产生此进程的命令名

pstree 命令

显示进程树

  • -p:显示进程的PID
  • -u:显示进程的所属用户

执行结果如下:

[root@localhost ~]# pstree -up
init(1)─┬─NetworkManager(1581)─┬─dhclient(3561)│                      └─{NetworkManager}(1645)├─abrtd(1960)├─acpid(1680)├─atd(1987)├─auditd(1462)───{auditd}(1463)├─automount(1767)─┬─{automount}(1768)│                 ├─{automount}(1769)│                 ├─{automount}(1772)│                 └─{automount}(1775)├─certmonger(2003)├─console-kit-dae(2584)─┬─{console-kit-da}(2585)│                       ├─{console-kit-da}(2586)│                       ├─{console-kit-da}(2587)│                       ├─{console-kit-da}(2588)│                       ├─{console-kit-da}(2589)│                       ├─{console-kit-da}(2590)│                       ├─{console-kit-da}(2591)│                       ├─{console-kit-da}(2592)├─crond(1972)├─cupsd(1647)├─dbus-daemon(1567,dbus)───{dbus-daemon}(1570)├─hald(1692,haldaemon)─┬─hald-runner(1693,root)─┬─hald-addon-acpi(1738,haldaemon)│                      │                        └─hald-addon-inpu(1737)│                      └─{hald}(1694)├─login(3126)───bash(3166)├─master(1931)─┬─pickup(21672,postfix)│              └─qmgr(1942,postfix)├─mingetty(2050)├─mingetty(2052)├─mingetty(2054)├─mingetty(2056)├─mingetty(2064)├─modem-manager(1588)├─polkitd(2720)├─rpc.statd(1604,rpcuser)├─rpcbind(1547,rpc)├─rsyslogd(1496)─┬─{rsyslogd}(1497)│                ├─{rsyslogd}(1498)│                └─{rsyslogd}(1499)├─sshd(1835)───sshd(21691)───bash(21695)───pstree(21739)├─udevd(548)─┬─udevd(2062)│            └─udevd(2063)└─wpa_supplicant(1648)

top 命令

查看系统健康状态

参数
- -d: 秒数:指定top命令每隔几秒更新。默认3秒
- -b: 使用批处理模式输出,一般和 - n合用
- -n: 次数:指定top命令执行的次数。一般和-b合用

交互命令:
- ?或h:显示帮助信息
- P:以CPU使用率排序,默认是此选项
- M:以内存使用率排序
- N:以PID排序
- q:退出top

[root@localhost ~]# top
top - 02:42:13 up  9:01,  2 users,  load average: 0.06, 0.04, 0.05
Tasks:  97 total,   1 running,  96 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.2%us,  0.4%sy,  0.0%ni, 99.0%id,  0.4%wa,  0.0%hi,  0.1%si,  0.0%st
Mem:   1004136k total,   824820k used,   179316k free,    39408k buffers
Swap:  2031612k total,        0k used,  2031612k free,   596492k cachedPID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND              7 root      20   0     0    0    0 S  2.0  0.0   0:39.59 events/0              1 root      20   0 19348 1616 1304 S  0.0  0.2   0:02.90 init                  2 root      20   0     0    0    0 S  0.0  0.0   0:00.01 kthreadd              3 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 migration/0           4 root      20   0     0    0    0 S  0.0  0.0   0:00.12 ksoftirqd/0           5 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 stopper/0             6 root      RT   0     0    0    0 S  0.0  0.0   0:00.12 watchdog/0            8 root      20   0     0    0    0 S  0.0  0.0   0:00.00 events/0              9 root      20   0     0    0    0 S  0.0  0.0   0:00.00 events_long/0         10 root      20   0     0    0    0 S  0.0  0.0   0:00.00 events_power_ef       11 root      20   0     0    0    0 S  0.0  0.0   0:00.00 cgroup                12 root      20   0     0    0    0 S  0.0  0.0   0:00.00 khelper               13 root      20   0     0    0    0 S  0.0  0.0   0:00.00 netns                 14 root      20   0     0    0    0 S  0.0  0.0   0:00.00 async/mgr             15 root      20   0     0    0    0 S  0.0  0.0   0:00.00 pm                    16 root      20   0     0    0    0 S  0.0  0.0   0:00.27 sync_supers           17 root      20   0     0    0    0 S  0.0  0.0   0:00.25 bdi-default           18 root      20   0     0    0    0 S  0.0  0.0   0:00.00 kintegrityd/0

第一行

内容说明
02:42:13系统当前时间
up 9:01系统的运行时间
2 users当前用户数
load average: 0.06, 0.04, 0.05系统在之前1分钟、5分钟、15分钟的平均负载。

第二行

内容说明
Tasks: 97 total系统中的进程总数
1 running正在运行的进程数
96 sleeping睡眠的进程数
0 stopped正在停止的进程数
0 zombie僵尸进程

第三行

内容说明
Cpu(s): 0.2%us用户模式占用的CPU百分比
0.4%sy系统模式占用的CPU百分比
0.0%ni改变过优先级的用户进程占用的CPU百分比
99.0%id 空闲的CPU百分比
0.4%wa等该输入/输出的进程占用百分比
0.0%hi硬中断请求服务占用的CPU百分比
0.1%si软中断请求服务占用的CPU百分比
0.0%stst(Steal time)虚拟时间百分比,就是当有虚拟机时,虚拟机CPU等待实际CPU的时间百分比

第四行

内容说明
Mem: 1004136k total物理内存的总量,单位KB
824820k used已经使用的物理内存数量
179316k free空闲的物理内存数量
39408k buffers作为缓冲区的内存数量

第五行

内容说明
Swap: 2031612k total交换分区(虚拟内存)的总大小
824820k used已经使用的交换分区的大小
0k used已经使用的交换分区的大小
2031612k free空闲交换分区的大小
596492k cached作为环迅的交换分区的大小

终止进程

kill -l 命令

  • kill -[信号] pid
    根据进程id杀死单一进程

常见信号如下:

信号代码信号名称说明
1SIGHUP平滑重启,关闭进程,重新读取配置文件后重启
9SIGNKILL进程法伤问题时,强制结束进程
15SIGTERM正常结束的金浩,kill命令的默认信号

杀死pid为14942的进程:

kill -1 14942
kill -HUP 14942 

killall 命令

  • killall [信号] [选项] 进程名
    按照进程名杀死进程

选项:
- -i 交互式。询问是否要杀死某个进程
- -I 忽略进程名的大小写

杀死tomcat进程:

killall -9 -I java

pkill 命令

  • pkill [信号] [选项] 进程名
    按照进程名杀死进程

该命令的作用与killall类似,只是多出了一个按照终端号结束用户终端的功能
- -t 终端号: 按照终端号踢出用户。 只有root用户可以操作

w命令查看当前用户。可知有一个本地终端和两个远程终端。WHAT表示该终端正在执行的命令。pts/1是当前终端的终端号。

[root@localhost bin]# w17:10:02 up 50 min,  3 users,  load average: 0.71, 0.21, 0.07
USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
root     tty1     -                16:24   41:19   0.15s  0.15s -bash
twilight pts/0    192.168.226.1    16:27   42:17   0.08s  0.08s -bash
root     pts/1    192.168.226.1    16:29    0.00s  0.33s  0.05s w

根据终端号杀死pts/0用户的终端:

pkill -9 -t pts/0

修改进程优先级

ps -le可以查看所有进程的信息,其中包括进程的优先级。PRI表示priority,NI表示nice。两个都是有点急,数字越小代表优先级越高。

注意事项:
- NI的范围是-20 到 19
- 普通用户调整NI值得范围是0~19,而且只能调整自己的进程
- 普通用户只能调高NI值,而不能降低
- root用户才能设定进程NI值为负值,而且可以调整任何用户的进程
- PRI(最终值) = PRI(原始值) + NI
- 用户只能修改NI的值,不能直接修改PRI

nice 命令

  • nice [选项] 命令
    nice可以给新执行的命令直接赋予NI值,但是不能修改已经存在进程的NI值。

选项:
- -n NI值: 给命令赋予NI值

例如:

nice -n -5 service httpd start

renice 命令

  • renice [优先级] PID
    修改已经存在的进程的NI值的命令

例如:

renice -10 2125

这篇关于Linux系统管理---进程管理(查看进程、终止进程、更改进程优先级)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/944020

相关文章

[Linux] 修改主机名(hostname)

在Linux命令行下输入hostname,查看当前主机名,如果想修改它,直接在hostname后面加上新主机名即可(注:以下操作都需要root用户执行),如: # hostname newhostname 但要注意的是,以上hostname命令只是临时修改了主机名,重启后失效。如果你想永久地改变主机名,必须编辑以下文件: vi /etc/sysconfig/networkHOSTN

[Linux] IRedmail邮件服务器

原文链接:http://wiki.ubuntu.org.cn/IRedMail iRedmail 组件 iRedMail主要是使用下面软件来构建邮件系统,下面是Ubuntu 10.04的软件版本。 Apache 2.2.xPHP 5.3.xMySQL 5.1.xOpenLDAP 2.4.xPostfix 2.7.x ( MTA )Dovecot 1.2.xAmavisd 2.6.x

[Linux] 邮件服务器的工作原理

邮件传输所需要的组件(MUA、MYA、MDA)和相关协议(SMTP) 邮件服务器的传输过程如上所示,其几个重要组件如下: 1)MUA(Mail User Agent):即邮件客户端软件,如Windows的Outlook,客户通过它来浏览、写和收邮件; 2)MTA(Mail Transfer Agent):当你在MUA(如outlook)上点发邮件时,其实它是把邮件发到MTA(如Send

[Linux] 网络设置

Linux的网络设置主要涉及的配置文件如下: IP相关参数设置 设置IP相关参数的配置文件为/etc/sysconfig/network-scripts/ifcfg-eth0,如下所示: DEVICE=eth0BOOTPROTO=staticBROADCAST=10.10.100.255HWADDR=90:B1:1C:12:E0:61IPADDR=10.10.100

[Linux] 软件安装与管理 - rpm、yum

前面我们提到Linux上的软件都可以通过Tarball的方式进行源码安装,但每次都要下载、编译、安装,是否太麻烦了一些?有没有类似windows那样厂商把软件编译好,我们用户直接拿来安装就行?答案是肯定的,这就是我们今天要说到的rpm和yum。 在Linux上,有两大主流的软件管理方法,如下所示: 由于Centos采用的是第一种,因此在这只介绍RPM和YUM。 什么是RPM和SR

运维安全管理系统:“四集中”管理 解决迫切问题

日前,国内专注于保密与非密领域的分级保护、等级保护、业务连续性安全和大数据安全产品解决方案与相关技术研究开发的领军企业——国联易安依托自身强大的研发能力,丰富的行业经验,自主研发了新一代软硬件一体化统一安全运维平台——国联易安运维安全管理系统(俗称“堡垒机”)。该系统运维安全管理“四集中”设计理念尤其领先业界其他系统:      一是集中账号管理。基于唯一身份标识的全局管理,实

linux学习:多媒体开发库SDL+视频、音频、事件子系统+处理yuv视频源

目录 编译和移植 视频子系统 视频子系统产生图像的步骤 api 初始化 SDL 的相关子系统 使用指定的宽、高和色深来创建一个视窗 surface 使用 fmt 指定的格式创建一个像素点​编辑 将 dst 上的矩形 dstrect 填充为单色 color​编辑 将 src 快速叠加到 dst 上​编辑 更新 screen 上的图像元素​编辑 api例子 音频子系统 SDL

linux 虚拟机详细搭建过程

因为机器学习,接触到了数据挖掘;因为数据挖掘,接触到了大数据;因为大数据,接触到了hadoop。之前有过hadoop的简单了解,但都是基于别人提供的hadoop来学习和使用,虽然也很好用 ,终究不如自己的使用起来方便 。经过这两天参考大量网上的经验,终于成功的搭建了自己的hadoop完全分布式环境。现在我把所有的安装思路、安装过程中的截图以及对待错误的经验总结出来,相信安装这个思路去做,hadoo

LInux 安装并使用htop

htop 安装: sudo apt-get install htop htop 界面说明 如果你观察窗口的左上角部分,你会看到显示的是 CPU 负载、内存消耗及交换空间的实时信息,右上角包含的是任务、线程、平均负载及系统运行时间的信息。 (1)Tasks 显示了当前的进程总数,其中有N个进程在运行 (2)Load average load average 三个参数的含义分别是过去的

Linux下使用scp进行文件复制

Linux scp 命令用于 Linux 之间复制文件和目录。 scp 是 secure copy 的缩写, scp 是 linux 系统下基于 ssh 登陆进行安全的远程文件拷贝命令。 常用场景: 1. 从本地向服务器上传 上传文件 没有指定复制后的文件名,默认使用原文件名 scp local_file remote_username@remote_ip:remote_folder