Linux系统监视资源与进程管理

Linux 系统中时刻运行着许多的进程,如果能够合理的管理它们,有益于系统性能的优化,

系统进程总共有五种不同的状态:

命令一:ps命令,用于查看系统中进程状态

格式:ps [参数]

查看进程与状态:ps -aux

查找某个特定的进程信息:ps -aux | grep 进程名

命令二:top命令,用于监视进程的活动与系统负载,格式为“top”

 top命令类似于“强化版的Windows任务管理器”,命令行中输入top后如下所示:

top - 15:45:39 up  1:25,  4 users,  load average: 0.00, 0.01, 0.05
Tasks: 485 total,   2 running, 483 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.3 us,  0.3 sy,  0.0 ni, 99.3 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :  1867632 total,   657704 free,   607728 used,   602200 buff/cache
KiB Swap:  2097148 total,  2097148 free,        0 used.  1011640 avail Mem

   PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND
  1033 root      20   0  246636   6284   4824 S  0.3  0.3   0:06.33 vmtoolsd
  3627 root      20   0  378052  18724  14728 S  0.3  1.0   0:06.21 vmtoolsd
  8693 root      20   0  157960   2592   1548 R  0.3  0.1   0:00.05 top
     1 root      20   0  125820   6644   3944 S  0.0  0.4   0:05.67 systemd
     2 root      20   0       0      0      0 S  0.0  0.0   0:00.01 kthreadd
     3 root      20   0       0      0      0 S  0.0  0.0   0:00.16 ksoftirqd/0
     7 root      rt   0       0      0      0 S  0.0  0.0   0:00.00 migration/0
     8 root      20   0       0      0      0 S  0.0  0.0   0:00.00 rcu_bh
     9 root      20   0       0      0      0 S  0.0  0.0   0:00.00 rcuob/0
    10 root      20   0       0      0      0 S  0.0  0.0   0:00.00 rcuob/1
    11 root      20   0       0      0      0 S  0.0  0.0   0:00.00 rcuob/2
    12 root      20   0       0      0      0 S  0.0  0.0   0:00.00 rcuob/3
    13 root      20   0       0      0      0 S  0.0  0.0   0:00.00 rcuob/4
    14 root      20   0       0      0      0 S  0.0  0.0   0:00.00 rcuob/5
    15 root      20   0       0      0      0 S  0.0  0.0   0:00.00 rcuob/6
    16 root      20   0       0      0      0 S  0.0  0.0   0:00.00 rcuob/7
    17 root      20   0       0      0      0 S  0.0  0.0   0:00.00 rcuob/8
    18 root      20   0       0      0      0 S  0.0  0.0   0:00.00 rcuob/9
    19 root      20   0       0      0      0 S  0.0  0.0   0:00.00 rcuob/10
    20 root      20   0       0      0      0 S  0.0  0.0   0:00.00 rcuob/11
    21 root      20   0       0      0      0 S  0.0  0.0   0:00.00 rcuob/12

前五行为系统整体的统计信息,具体如下:

命令三:pidof命令:用于查询某个特定程序的进程PID,格式为pidof [参数] [程序名称]

查询“sshd”进程的pid值:“pidof sshd”

[root@localhost ~]# pidof sshd
8302 8191 7085

命令四:kill命令,用于中止某个特定PID号码的进程,格式为kill [参数] [进程PID号]

强制中止PID为8302的进程(参数-9代表强制终止):

[root@localhost ~]# kill -9 8302

命令五:killall命令,用于终止某个特定名称的所有进程,格式为killall [参数] [进程名称]

终止名称为“sshd”的进程:

[root@localhost ~]# killall sshd

命令6:Ctrl+c、Ctrl+z、jobs、bg、fg命令

在终端中运行了一个命令后如果想立刻停止它,可以使用组合键ctrl+c,这样命令的进程将会彻底的

被终止。而ctrl+z是将命令的进程暂停(也叫挂载到后台或扔到后台)。

实例1:通过putty等工具连接远程linux主机,连接两个终端,分别为终端1和终端2,执行以下命令,

命令达到的效果为每秒向家目录的jobs.txt中追加一个字符串working

如下图所示:输入ctrl + z 后,终端2的命令的进程被暂停,终端1中的内容也不再追加

此时,使用jobs命令查看所有在后台运行着的进程:

[root@localhost ~]# jobs
[1]   已停止               ( while true; do
    echo -n "working" >> ~/jobs.txt; sleep 1;
done )
[2]-  已停止               ( while true; do
    echo -n "working" >> ~/jobs.txt; sleep 1;
done )
[3]+  已停止               ( while true; do
    echo -n "working" >> ~/jobs.txt; sleep 1;
done )

在终端2中运行“bg 1” 命令,让后台的程序继续执行,此时终端1中的内容继续增加

在终端2中使用fg 1命令,将后台的进程调回到前台,程序依然执行,然后此时终端1中的内容又继续增加中

有些命令在执行时会不断的在终端中输出信息,影响到我们继续输入命令了,此时

便可以在这条命令的后面添加一个“&”符号,那么从一开始执行该命令就是在后台运行

(注意:不是在后台暂停,而是在后台运行),这个实验可以只用到一个终端,在终端中加入&后

可以继续使用tail -f jobs.txt进行查看,而且jobs.txt中的内容也确实一直在增加中...

原文地址:https://www.cnblogs.com/tdcqma/p/5865073.html