ps
命令一般用来显示终端信息和进程信息,运行命令ps -eo pid,comm,cmd
可以输出所有进程的信息,e代表所有进程,后面三个参数是需要输出的信息。
第一列PID是一个整数,每一个进程都有一个唯一的PID来代表自己的身份,进程也可以根据PID来识别其他的进程。第二列COMMAND是这个进程的简称。第三列CMD是进程所对应的程序以及运行时所带的参数。
PID为1的进程是systemd,运行/sbin/init
后出现。如果运行ps aux
命令,可以看到第一个进程就是init
。
计算机启动时,只有一个根进程init
,可以通过命令pstree
查看。Linux创建新进程用的是fork机制,所有进程都是从init
进程fork而来,也就是说Linux进程是个树形结构。目前Systemd
取代了initd,成为系统的第一个进程(PID=1),其他进程都是它的子进程。根据 Linux 惯例,字母d是守护进程(daemon)的缩写。 Systemd 这个名字的含义,就是它要守护整个系统。
fork复制老进程产生了新进程,它在内存中开辟一段空间供子进程使用,并将老的进程空间中的内容复制到新的空间中,此后两个进程同时运行。老进程被称为父进程,新进程为子进程,Linux提供了ppid
表示某进程的父进程I