Skip to content

进程

进程

进程之间是独立,一个进程至少有一个线程.

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信号,挂起

线程

线程之间内存共享的,