Linux 进程任务管理

一、程序和进程的关系

  • 程序

​ 1、保存在硬盘、光盘等介质中的可执行代码和数据

​ 2、静态保存的代码

  • 进程

​ 1、在CPU及内存中运行的程序代码

​ 2、动态执行的代码

​ 3、父、子进程

​ 4、每个程序可以创建一个或多个进程

二、ps命令 查看进程信息

ps aux  ##查看静态的进程统计信息
-a:显示现行终端机下的所有进程,包括其他用户的进程
-u:显示进程拥有者、状态、资源占用等的详细信息(注意有“-”和无“-”的区别)
-x:显示没有控制终端的进程。通常与 a 这个参数一起使用,可列出较完整信息

[root@localhost ~]# ps aux
USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root          1  0.0  0.1 193708  6704 ?        Ss   10:07   0:02 /usr/lib/systemd/systemd --switched-root --system --deserialize 22
root          2  0.0  0.0      0     0 ?        S    10:07   0:00 [kthreadd]
root          3  0.0  0.0      0     0 ?        S    10:07   0:00 [ksoftirqd/0]
root          5  0.0  0.0      0     0 ?        S<   10:07   0:00 [kworker/0:0H]
root          7  0.0  0.0      0     0 ?        S    10:07   0:00 [migration/0]
root          8  0.0  0.0      0     0 ?        S    10:07   0:00 [rcu_bh]
root          9  0.0  0.0      0     0 ?        S    10:07   0:00 [rcu_sched]
root         10  0.0  0.0      0     0 ?        S<   10:07   0:00 [lru-add-drain]
ps -elf   
##查看静态进程统计信息

ps aux 与 ps -elf之间对比

ps aux 是最常用的 BSD 风格选项组合,其中的 a 简单的说,表示所有关联到终端的进程,如果同时使用 x 则代表所有进程;u 表示列出进程的用户。此外,由于一些ps版本的原因,也支持了 ps -aux

ps -elf 
 ps -elf 的 -e 代表列出所有进程,-l 代表长格式,-f 代表完整的格式,有时候也用 -F 代表超完整的格式。 不过,不同操作系统(如 Linux、BSD)的 ps 的版本和参数有很大差异,具体还是要以自己的手册而定。
 

三、top命令 查看进程信息

  • 查看动态的进程排名信息
top

[root@localhost ~]# top
top - 11:42:39 up  1:35,  1 user,  load average: 0.02, 0.04, 0.05
Tasks: 139 total,   1 running, 138 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.0 us,  0.1 sy,  0.0 ni, 99.9 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :  3861512 total,  3358252 free,   177084 used,   326176 buff/cache
KiB Swap:  4064252 total,  4064252 free,        0 used.  3407140 avail Mem 

   PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND                                 
  8564 root      20   0  227204   6472   5108 S   0.3  0.2   0:05.01 vmtoolsd                               
 17628 root      20   0  162012   2300   1596 R   0.3  0.1   0:00.03 top                                     
     1 root      20   0  193708   6704   4168 S   0.0  0.2   0:02.05 systemd                                 
     2 root      20   0       0      0      0 S   0.0  0.0   0:00.00 kthreadd                               
     3 root      20   0       0      0      0 S   0.0  0.0   0:00.04 ksoftirqd/0                             
     5 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 kworker/0:0H                           
     7 root      rt   0       0      0      0 S   0.0  0.0   0:00.03 migration/0     

四、pgrep 查看进程信息

  • 根据特定条件查询进程PID信息
选项:-l 列出程序名和进程UID
     -o 进程起始UID
     -n 进程终止UID
     -u 指定进程的有效用户ID
     -t:指定开启进程的终端
[root@localhost ~]# pgrep -l ssh
9109 sshd
9626 sshd

五、pstree 命令 查看进程信息树

pstree [选项] [PID或用户名]

选项:-a 显示启动每个进程对应的完整指令,包括启动进程的路径、参数等。
     -c	不使用精简法显示进程信息,即显示的进程中包含子进程和父进程。
     -n 根据进程 PID 号来排序输出,默认是以程序名排序输出的。
     -p	显示进程的 PID。
     -u	显示进程对应的用户名称。

[root@localhost ~]# pstree
systemd─┬─NetworkManager───2*[{NetworkManager}]
        ├─VGAuthService
        ├─agetty
        ├─anacron
        ├─auditd───{auditd}
        ├─chronyd
        ├─crond
        ├─dbus-daemon───{dbus-daemon}
        ├─firewalld───{firewalld}
        ├─irqbalance
        ├─lvmetad
        ├─master─┬─pickup
        │        └─qmgr
        ├─polkitd───6*[{polkitd}]
        ├─rsyslogd───2*[{rsyslogd}]
        ├─sshd───sshd───bash───pstree
        ├─systemd-journal
        ├─systemd-logind
        ├─systemd-udevd
        ├─tuned───4*[{tuned}]
     
【注意】;如果提示没有安装该命令,则需要先安装一下:yum -y install psmisc

六、进程的启动方式

  • 手工启动:1、前台启动:用户输入命令,直接执行程序

    ​ 2、后台启动:在命令行尾加入“&”符号

  • 调度启动:1、使用at命令,设置一次性计划任务

​ 2、使用crontab命令,设置周期性计划任务

七、进程的前后台调度与终止

  • Ctrl+Z组合键

    将当前进程挂起,即调入后台并停止执行

  • jobs命令

​ 查看处于后台的任务列表

  • fg命令

​ 将后台进程恢复到前台运行,可指定任务序号

  • Ctrl+C组合键

​ 终端正在执行的命令

  • kill、killall命令

​ kill用于终止指定PID号的进程

​ killall用于终止指定名称的所有进程

​ -9:选项用于强制终止

  • pkill 命令

    根据特定条件终止相应进程

    常用命令选项:-u:根据进程所属的用户名终止相应进程

    ​ -t:根据进程所在的终端终止相应进程

pgrep -l -U root   ## 筛选root用户下的所有进程
[root@localhost ~]# pgrep -l -U root
1 systemd
2 kthreadd
3 ksoftirqd/0
5 kworker/0:0H
7 migration/0
8 rcu_bh
9 rcu_sched  

[root@localhost ~]# pkill -9 -U root   ##强制终止root用户下的所有进程

猜你喜欢

转载自blog.csdn.net/u014042047/article/details/107134872
今日推荐