linux-进程管理
linux-进程管理
- 一、进程概述
- 1. 基本概念
- 2. 运行状态
- 3. 进程生命周期
- 二、查看进程
- 1. ps aux
- 2. pstree
- 3. top
- 4. $$
- 三、杀死进程
- 四、资源限制
一、进程概述
1. 基本概念
- 进程:程序运行时的实例,拥有独立内存空间和系统资源
- 线程:进程内的执行单元,共享进程资源
- 进程 ID(PID):每个进程的唯一标识符,由系统动态分配
init进程(PID=1)是所有进程的父进程
2. 运行状态
R(运行)、S(睡眠)、T(暂停)、Z(僵尸)、D(不可中断睡眠)
3. 进程生命周期
父进程 → fork() → 子进程 → exec() → 加载程序 → 运行 → exit() → 僵尸 → wait()回收
二、查看进程
1. ps aux
查看所有的进程
[root@hz ~]# ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
查看所有的进程,然后过滤出bush程序
[root@hz /]# ps aux|grep bash
root 1342 0.0 0.1 7788 4224 pts/0 Ss 15:39 0:00 -bas
root 2079 0.0 0.0 6632 2560 pts/0 S+ 19:03 0:00 grep --color=auto bash
2. pstree
查看进程树和PID
[root@hz ~]# pstree -p
systemd(1)─┬─NetworkManager(765)─┬─{NetworkManager}(796)
│ └─{NetworkManager}(802)
├─VGAuthService(715)
├─agetty(836)
├─auditd(684)───{auditd}(685)
├─chronyd(722)
├─crond(832)
├─dbus-broker-lau(708)───dbus-broker(709)
├─firewalld(712)───{firewalld}(872)
├─irqbalance(713)───{irqbalance}(717)
├─rsyslogd(881)─┬─{rsyslogd}(903)
│ └─{rsyslogd}(906)
├─sshd(822)───sshd(1330)───sshd(1344)───bash(1345)───pstree(+
├─systemd(1335)───(sd-pam)(1337)
├─systemd-journal(611)
├─systemd-logind(714)
├─systemd-udevd(625)
└─vmtoolsd(716)─┬─{vmtoolsd}(743)
└─{vmtoolsd}(744)
3. top
动态显示CPU/内存占用最高的进程
按 q / ctrl+c 退出
[root@hz ~]# top
top - 16:00:48 up 1:55, 2 users, load average: 0.00, 0.00, 0.00
Tasks: 154 total, 1 running, 153 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
MiB Mem : 3627.6 total, 2775.1 free, 559.8 used, 538.5 buff/cache
MiB Swap: 2048.0 total, 2048.0 free, 0.0 used. 3067.8 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1655 root 20 0 10800 4224 3456 R 0.7 0.1 0:00.16 top
%Cpu(s): 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
idle 空闲的cpu百分比
us 表示用户进程使用的cpu百分比 user --》在用户空间里运行的进程消耗的cpu
sy 表示系统进程使用的cpu百分比 system --》在内核空间里运行的操作系统的代码进程消耗的cpu
4. $$
代表当前终端(bush)的进程号
[root@hz ~]# echo $$
1345
三、杀死进程
[root@hz ~]# kill -l
1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP
6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1
[root@hz ~]# kill -9 4715
kill 杀死进程的命令
signal 信号类型
9) SIGKILL 告诉内核强制杀死进程 kill signal
15) SIGTERM 让内核告诉进程自我终结 --》这个方式可以被屏蔽 terminate signal
四、资源限制
查看当前所有的资源限制
[root@hz ~]# ulimit -a
real-time non-blocking time (microseconds, -R) unlimited
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 14344
max locked memory (kbytes, -l) 8192
max memory size (kbytes, -m) unlimited
open files (-n) 1024
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) 14344
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
临时修改
ulimit -n 4096 # 临时将文件描述符限制提高到4096
永久限制(修改配置文件)
vim /etc/security/limits.conf
# 添加以下内容(针对用户username)
username hard nofile 65535
username soft nofile 65535