Linux 进程管理
进程(process)一个独立运行的程序
进程就是操作系统中运行的一个程序。在计算机中操作系统拥有对 CPU、内存、硬盘灯硬件资源的最高操作权限,应用程序不能直接调用硬件资源,应用程序是以进程的方式运行在操作系统中,通过操作系统间接的调用硬件资源。
程序就是一个指令的集合,静态存储于硬盘等类似存储中,操作系统在执行程序时,程序就会被载入到内存中,产生一个独立的实例,就是进程;
线程(thread):操作系统的最小调度单元
一个 CPU 同时只能执行一个线程的任务,随着 CPU 核数的增加,为了让多个核心同时为我们工作,并行的执行任务,发挥 CPU 的最大能力,每个进程可以创建多个线程, 同一个进程中的线程可以共享同一内存空间,以及其中的资源,这就产生了同步问题。
端口
一个 IP 对应一台屋里机器,对应一张网卡,网卡负责和网络进行数据包交互, 一台计算机上运行着多个程序,外界发来的数据包网卡不知道该由哪个应该程序来处理, 所以网卡要求每个想要今天外部请求的程序都自己申请一个端口号,为了安全每个端口只能被一个应用程序监听。 端口是计算机对外通信的出口,将接收到的数据包给到指定程序处理,进程和线程可以同时监听多个端口。
TODO:前台任务&后台任务
TODO:nohup
进程查看命令ps aux | ps -le
- 选项
a:显示终端所有进程 - 选项
u:显示进程的归属用户及内存使用情况 - 选项
x:显示没有控制终端的进行 - 选项
-l:长格式显示 - 选项
-e:显示所有进程
ps aux字段
- USER:进程产生用户
- PID:进程 ID
- %CPU:CPU 使用占比
- %MEM:内存使用占比
- VSZ:虚拟内存占用量
- RSS:真实内存占用量
- TTY:进程产生的终端,tty1-tty 代表本地字符界面终端,tty7 代表本地图形终端。pst/0-255 虚拟终端
- STAT:进程状态
- S:休眠 sleep
- R:运行
- START:进程启动时间
- TIME:进程耗费时间
- COMMAND:进程名字
ps -le字段
TYPE2: ps -le:显示优先级
UID PID PPID F CPU PRI NI SZ RSS WCHAN S ADDR TTY TIME CMD
0 1 0 4004 0 37 0 4328532 12048 - Ss 0 ?? 15:37.20 /sbin/launchd
0 49 1 4004 0 4 0 4306056 1528 - Ss 0 ?? 0:47.93 /usr/sbin/syslogd
0 50 1 4004 0 37 0 4338256 5544 - Ss 0 ?? 0:38.60 /usr/libexec/UserEventAgent (System)
TYPE3: pstree:显示进程树
系统健康状态查询: top
- 选项:
-d:刷新间隔默认 3 秒-b:执行批处理-n:指定执行次数
- 交互命令(top 运行过程中输入命令)
?或h:显示帮助P:按 CPU 使用率拍下M:按内存使用率拍下N:按 PID 排序q:退出
top - 15:57:05 up 9 days, 4:14, 0 users, load average: 0.51, 0.46, 0.47
Tasks: 6 total, 1 running, 5 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.3 us, 0.3 sy, 0.0 ni, 99.4 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 13164624+total, 6679208 free, 66288276 used, 58678760 buff/cache
KiB Swap: 0 total, 0 free, 0 used. 64331924 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
159 root 20 0 736088 31296 14916 S 0.3 0.0 0:04.41 npm
1 mqq 20 0 115376 1928 1548 S 0.0 0.0 0:00.01 bash
109 mqq 20 0 115392 2192 1708 S 0.0 0.0 0:00.03 bash
143 root 20 0 614824 32860 14316 S 0.0 0.0 0:01.42 PM2 v3.5.0: God
179 root 20 0 561828 25028 13840 S 0.0 0.0 0:00.14 node
385 mqq 20 0 157568 2128 1536 R 0.0 0.0 0:00.30 top
结束进程
kill pid:按进程号杀死-1:重启进程-9:强制杀死进程
killall name:按进程名杀死