Linux - 进程管理

427 阅读2分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第24天,点击查看活动详

ps命令

命令后面加上&可以将进程置于后台运行 ,比如vim a.txt &

ps aux  # 查看所有进程信息
- USER  进程属于哪个用户
- PID   进程号
- %CPU  占用的CPU
- %MEM  占用的内存空间
- VSZ   申请的内存空间
- RSS   实际占用的内存空间
- STAT  进程状态
    R:运行状态
    S:可中断睡眠状态,大多数进程所处状态,在睡眠过程中可以接受信号唤醒进程,执行的IO操作可以得到硬件响应
    D:不可中断睡眠状态,睡眠过程中不可以接受信号唤醒进程,执行的IO操作得不到硬件响应,此时硬盘压力过大,属于杀不死的进程
    T:停止的进程
    Z:僵尸进程,不能被杀死的进程
    x:死掉的进程,几乎看不见这种状态
    <:代表优先级较高的进程
    N:代表优先级较低的进程
    s:表示包含子进程
    +:表示是前台的进程
    l:表示进程内开启了多线程
    |:管道符表示多进程
- COMMAND  进程文件
ps -elf  # 可以查看进程的父进程号ppid
pstree  pid号 # 可以查看进程的进程树
pstree  # 也可以单独使用

top命令

top命令可以实时查看进程信息,按a退出监控界面

top -p pid号:查看某一个进程。

在top监控界面可以执行的命令:

s:调整刷新频率
M:按照内存从大到小排序
R:倒序排列,从小到大
P:按照CPU使用率排序,从大到小
N:按照PID排序
shift+< or >:左右切换字段排序
f:选择top命令显示字段,空格键选择,上下键控制方向,q保存退出
z:彩色查看,再按一次取消颜色显示
k:给进城发信号
​

管道符和进程命令结合使用

ps aux | grep python
ps elf | grep python

kill - 给进程发送信号

[root@VM-4-2-centos ~]# kill -l  # 列出所有支持的信号,数字对应信号
 1) SIGHUP   2) SIGINT   3) SIGQUIT  4) SIGILL   5) SIGTRAP
 6) SIGABRT  7) SIGBUS   8) SIGFPE   9) SIGKILL 10) SIGUSR1
11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM
16) SIGSTKFLT   17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP
21) SIGTTIN 22) SIGTTOU 23) SIGURG  24) SIGXCPU 25) SIGXFSZ
26) SIGVTALRM   27) SIGPROF 28) SIGWINCH    29) SIGIO   30) SIGPWR
31) SIGSYS  34) SIGRTMIN    35) SIGRTMIN+1  36) SIGRTMIN+2  37) SIGRTMIN+3
38) SIGRTMIN+4  39) SIGRTMIN+5  40) SIGRTMIN+6  41) SIGRTMIN+7  42) SIGRTMIN+8
43) SIGRTMIN+9  44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13
48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12
53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9  56) SIGRTMAX-8  57) SIGRTMAX-7
58) SIGRTMAX-6  59) SIGRTMAX-5  60) SIGRTMAX-4  61) SIGRTMAX-3  62) SIGRTMAX-2
63) SIGRTMAX-1  64) SIGRTMAX    

上述这么多信号只需要记住三个1 9 15

    1. SIGHUP:可以让进程重新加载配置,kill -1 进程号
    1. SIGKILL:强制杀死进程,kill -9 进程号
    1. SIGTERM:kill默认发送的就是该信号,即终止进程,kill pid号等价于kill -15 pid号,如果kill -15不能终止进程,可以使用kill -9

kill pid号:精确的杀死一个进程

kill -9 进程名称:指定进程名字关闭进程,可能会关闭多个