linux系统的进程

本文详细介绍了Linux系统中的进程概念,包括程序与进程的区别、进程的动态执行特性、父子进程和守护进程。重点讲解了`ps`命令的使用,如何查看不同状态的进程,并解析了进程状态码的含义。此外,还探讨了如何终止进程,包括`kill`、`killall`和`pkill`命令的用法,以及它们在不同场景下的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

进程管理

1.1 程序与进程的关系

程序 -> 软件

  • 程序是保存在尾部存储介质(如硬盘,光盘)等中的可执行静态

  • 静态保存代码

    进程:

  • 加载到内存中的程序代码(计算机程序,由cup运行)

  • 动态执行的代码

  • 父子进程:每一个进程可以创建爱你一个或多个进程

  • systemd为系统请懂得第一个程序:pid号为1

  • 守护进程:常驻内存,与终端无关的进程(自己在系统后台执行)

  • 用户进程:通过终端执行加载的程序

1.2 ps命令:

  • 查看静态的进程统计量

  • linux上进程有5种状态:

    1. 运行(正在运行或在运行队列中等待)

    2. 中断(休眠中, 受阻, 在等待某个条件的形成或接受到信号)

    3. 不可中断(收到信号不唤醒和不可运行, 进程必须等待直到有中断发生)

    4. 僵死(进程已终止, 但进程描述符存在, 直到父进程调用wait4()系统调用后释放)

    5. 停止(进程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信号后停止运行运行)

  • ps工具标识进程的5种状态码:

    D 不可中断 uninterruptible sleep (usually IO)

    R 运行 runnable (on run queue)

    S 中断 sleeping

    T 停止 traced or stopped

    Z 僵死 a defunct (”zombie”) process

  • 参数
    a 显示所有进程

    -a 显示同一终端下的所有程序

    -A 显示所有进程

    c 显示进程的真实名称

    -N 反向选择

    -e 等于“-A”

    e 显示环境变量

    f 显示程序间的关系

    -H 显示树状结构

    r 显示当前终端的进程

    T 显示当前终端的所有程序

    u 指定用户的所有进程

    -au 显示较详细的资讯

    -aux 显示所有包含其他使用者的行程

    -C<命令> 列出指定命令的状况

    --lines<行数> 每页显示的行数

    --width<字符数> 每页显示的字符数

    --help 显示帮助信息

    --version 显示版本显示

  •  ps aux #查看所有进程

     

    1. user:,用户名字

    2. pid:pid号

    3. %cup:cup使用率

    4. %mem:内存使用率

    5. vsz:虚拟内存

    6. Rss: 常驻物理内存

    7. tty:终端 “?”表示为之活着不需要终端

    8. stat:状态
      S:可中断的睡眠
      R:就绪或者运行的状态
      Z:僵死状态
      <:高优先级进程
      +:前台进程组中的进程

    9. start:使用时间

    10. time:运行时间

    11. command:命令

  • ps -elf #比aux多一个ppid号和一个ni:启动时候的优先级负数

  • ps aux | grep "sshd" #查看sshd进程是否活着

 最后一个进程是查询sshd时的进程,前面两个是运行的进程

 ps -C sshd --no-headers #查询进程名称且检查是否存活

 

1.4. 终止进程:

  • Ctrl+c

  • kill命令:-9 ipd号:强制杀死
    -l 信号,若果不加信号的编号参数,则使用“-l”参数会列出全部的信号名称
    -a 当处理当前进程时,不限制命令名和进程号的对应关系
    -p 指定kill 命令只打印相关进程的进程号,而不发送任何信号
    -s 指定发送信号

  • killall命令
    -Z 只杀死拥有scontext 的进程
    -e 要求匹配进程名称
    -I 忽略小写
    -g 杀死进程组而不是进程
    -i 交互模式,杀死进程前先询问用户
    -l 列出所有的已知信号名称
    -q 不输出警告信息
    -s 发送指定的信号
    -v 报告信号是否成功发送
    -w 等待进程死亡
    --help 显示帮助信息
    --version 显示版本显示
    -u 指定用户

  • pkill命令:根据指定条件终止
    pkill 和killall 应用方法差不多,也是直接杀死运行中的程式;如果你想杀掉单个进程,请用kill 来杀掉。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值