关于进程的那些事儿!

进程的类型

  • 前台进程:这是指与用户交互的进程,不是系统自启动的。例如:用户手动部署的一个应用程序。
  • 后端进程:这些是指系统自启动的进程,不需要用户交互。

守护进程

这是一个特殊的进程,作为服务一直存在,不会死掉,是一种特殊的进程,能被 init 进程来控制。

创建进程的方式

  • fork() 方式是一个父进程来复制一个子进程,子进程和父进程的PID和两者的内存值是不同的,其他的都是共享的,例如运行环境等,只用等父进程或者是子进程进行了修改后才能重新生成一份新的环境。
  • system() 方式是调用 /bin/sh -c command 来产生新的进程,这的方式就是阻塞当前的进程,直到 command 命令执行完成,新的进程会有新的 PID
  • exec()的方式有若干种函数,和之前的fork函数和system()函数不同,exec方式会用新的进程替代掉旧的进程,系统会从新的进程运行,新的进程的 PID的值会与原来的进程的PID值相同。

父进程和子进程的区分

父进程:就是在运行时创建其他进程的进程。

子进程:就是在运行时由其他的进程创建的进程。

init进程

这是所有进程中的父进程,是启动Linux系统后运行的第一个进程,管理着系统上所有的进程,而且是由内核启动的,PID1

查找进程ID

1
2
3
4
//查找系统中的 init 进程
pidof systemd
//查找 top 进程
pidof top
  • 查看 shell 命令中的PID 和它的父进程 PPID
    1
    2
    echo $$
    echo $PPID

Linux中的后台任务

  • 可以使用 ctrl + Z 来暂停在运行的进程,再使用 bg 来重启刚刚暂停的进程。或者是开启进程的时候使用&这个符号

参考这篇文章:https://www.tecmint.com/run-linux-command-process-in-background-detach-process/

Linux中进程的状态

  • Running 状态
  • Waiting 状态:又分为 interruptible waiting process(可中断的等待进程)和 uninterruptible waiting process (不可中断的等待进程)
  • Stopped 状态
  • Zombie 状态,指的是该进程已经死亡,但是在进程表里面仍然有它的条目

查看Linux的活跃进程

  • ps
  • top

参看文章:Linux 中 12 个 top 命令实例

Glances监控工具

Glances监控工具的使用

监控 Linux 性能的 20 个命令行工具

13 个有用的 Linux 监控工具

如何在 Linux 中控制进程

终止 Linux 进程的 Kill、Pkill 和 Killall 命令指南

如何在 Linux 中查找并杀死进程

如何处理Linux中的不响应的进程

Linux 中的不响应程序

更改进程优先级

可以使用nice或者是renice来进行为一个进程设置nice值,一个人普通的用户可以给他拥有的进程设置020nice值。只有root用户才可以进行设置负数。

1
2
//为进程设置优先级
renice +8 2382

关于在Linux中进程PID的特殊值

  • PID为1的进程代表的是初始化的进程。
  • Cron进程是执行定时性的任务进程。

参考链接:

关于 Linux 进程你所需要知道的一切

spacedong wechat
愿意交个朋友吗~
觉得有收获么