进程
进程
进程之间是独立,一个进程至少有一个线程.
pstree -p
ps -aux
显示所有进程
ps -aux
# USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
# root 1 0.8 0.0 170836 14888 ? Ss 5月26 110:15 /sbin/init splash
# USER : 运行此进程的用户名
# PID :该 process 的号码。
# %CPU :该 process 使用掉的 CPU 资源百分比;
# %MEM :该 process 所占用的物理内存百分比;
# Vsz :该 process 使用掉的虚拟内存量(Kbytes)
# RSS :该 process 占用的固定的内存量(Kbytes)+
# TTY :该 process 是在那个终端机上面运作,若与终端机无关,则显示 ?,另外,ty1-tty6 是本机上面的登入者程序,若为 pts/ 等等的,则表示为由网络连接进主机的程序。
# STAT : 该程序目前的状态,Linux进程有 5 种基本状态:
# R :(正在运行或在运行队列中等待);
# S :该程序目前正在睡眠当中,但可被某些讯号 (signal)唤醒。
# T : 该程序目前暂停了
# Z :该程序目前处于僵尸进程状态,即已经结束,但进程的资源没有被释放。
# D :该程序目前处于等待 I/O 操作完成状态。
# < : 高优先级
# N : 低优先级
# I : 多线程
# l : 有些页被锁进内存
# s : 该 process 是一个超级进程,包含子进程。
# + : 前台程序
# Command :该 process 的命令行。
# start :该 process 的启动时间。
top
top
# top - 22:24:29 up 9 days, 7:31, 1 user, load average: 0.59, 0.75, 0.98
# 系统时间 22:24:29 系统运行时间 9 天 7 小时 31 分钟 当前用户数 1 系统负载 1 5 15分钟的负载平均值
# 任务: 708 total, 2 running, 706 sleeping, 0 stopped, 0 zombie
# 进程数 708 706 正在运行 706 睡眠中 0 停止 0 僵尸进程
# %Cpu(s): 6.6 us, 1.4 sy, 0.0 ni, 91.4 id, 0.0 wa, 0.0 hi, 0.5 si, 0.0 st
# %Cpu(s) 系统用户进程占用cpu百分比
# sy 内核占用cpu百分比
# ni 用户进程空间改变优先级的进程占用cpu百分比
# id 空闲进程占用cpu百分比
# wa 等待io进程占用cpu百分比
# hi 硬件中断占用cpu百分比
# si 软中断占用cpu百分比
# st 用于有虚拟cpu的情况,用来指示被虚拟机偷掉的cpu时间
# MiB Mem : 61987.8 total, 18443.9 free, 13700.9 used, 29843.0 buff/cache
# 物理内存总量 MiB Mem 空闲 free 使用 used 缓存 buff/cache
# MiB Swap: 0.0 total, 0.0 free, 0.0 used. 47790.8 avail Mem
# 进程 USER PR NI VIRT RES SHR %CPU %MEM TIME+ COMMAND
# 15610 50000 20 0 116852 76540 18560 R 28.8 0.1 0:00.87
kill
kill -n pid
# 给进程发送信息
# 常用信号
# hub 1 重启
# INT 2 中断
# QUIT 3 退出
# KILl 9 强行中断
# SEG 11 段错误
# TERM 15 终止信号
# CONT 18 继续运行信号,恢复之前接受了STOP信号的进程
# STOP 19 停止信号,进程暂停
killall 进程名称
# 杀死某个进程的所有进程
nice/renice
优先级运行命令
nice -n 10 command
# 以指定优先级运行命令,优先级默认为0
nice -n 5 vim a.txt
renice -n 10 pid
# 修改正在运行的进程的优先级
renice -n 5 pid
jobs/fg
查看后台进程
vim 1.txt &
# 将vim后台运行
jobs
# 查看后台进程
# 可以得到列表信息
# [1] + suspended (tty output) vim 1.txt
fg 1
# 将后台进程掉到前台
# 注意需要查看正在使用的sh类别,如果是oh my zsh可能不行
free -m
以mb为单位查看内存使用
echo 3 > /proc/sys/vm/drop_caches
# 清除内存缓存
ctrl+c 发送sigint信号,终止
ctrl+z 发送sigstop信号,挂起
线程
线程之间内存共享的,