linux进程,分类,特殊进程, 状态标记, 常用命令。

linux进程的分类

  前台进程: 具有终端,可以和用户进行交互的进程(占用终端,比如终端执行一段死循环的代码,这个时候终端输入是不起作用的,必须ctrl c 退出执行的内容才可以, 执行这个死循环的代码的进程就可以称之为前台进程)比如如下代码 python3 x.py。

# x.py
import
time while True: print("hello world") time.sleep(3)

 

  后台进程:后台进程基本上不需要和用户交互,优先级比前台进程低(命令后面加上&),python3 x.py &, 这时候ctrl c 不能停止任务执行,hello world仍然会输出到命令行里面。

       在后台执行可是不在命令行中打印: python3 x.py 2>&1 > /dev/null &

    守护进程(特殊的后台进程): 很多守护进程在系统启动的时候就跟随启动了, 一直运行到系统关闭。

                linux有很多典型的守护进程: 以d为结尾的通常都是守护进程 比如 crond(定时任务进程)     httpd(http服务进程) sshd(ssh登陆守护进程) mysqld

 

 

父进程与子进程

  进程A调用了fork接口创建了进程B,就称B为A的子进程,A为B的父进程。

  父子进程关系可以通关 pstree 命令来查看。

 

特殊进程

  ID为0的进程是idle进程,是系统创建的第一个进程。

  ID为1的进程是init进程,是0号进程的子进程,完成系统的初始化。

  init进程是所用用户进程的祖先进程。

 

进程的状态标记

  

  查看进程状态 ps -aux | grep [ID]        (mac系统 -aux 替换为 aux)

 

操作进程的常用命令

  ps命令

    ps -aux 查看所有进程

    ps -u [username] 某用户的进程

    ps -aux | grep [x]     x可以是ID,或者程序名称之类的比如python3

    ps -ef --forest (mac没有 可以用pstree) 查看进程父子状态

    ps -aux --sort=-pcpu (cpu占用率排序 输出进程)

    ps -aux --sort=-pmem(内存占用率排序)

  还有 top 和 kill命令。

  

posted @ 2022-02-25 22:19  DRQ丶  阅读(158)  评论(0编辑  收藏  举报