linux(进程)[6]

管理概念

先描述,再组织

linux(进程)[6]_第1张图片
linux(进程)[6]_第2张图片

进程

启动一个软件就相当于启动了一个进程
Linux下执行一条命令就在系统层面创建了一个进程!!
linux(进程)[6]_第3张图片

如何管理

linux(进程)[6]_第4张图片
进程=对应的代码和数据 + 进程对应的PCB结构体
linux(进程)[6]_第5张图片

PCB(process control block)

linux(进程)[6]_第6张图片
linux(进程)[6]_第7张图片
在Linux系统中,可以使用以下几种方式获取进程的PID(进程ID):

  1. getpid()函数:可以使用C/C++的系统调用函数getpid()来获取当前进程的PID。该函数定义在头文件中。
#include 
#include 

int main() {
    pid_t pid = getpid();
    printf("当前进程的PID:%d\n", pid);

    return 0;
}
  1. ps命令:在终端中可以使用ps命令来查看当前正在运行的进程以及它们的PID。常用的ps命令选项包括-e(显示所有进程)、-f(显示完整格式)和-l(显示更详细的信息)。
ps -ef
  1. pgrep命令:pgrep命令是一个用于根据进程名或其他属性查找进程PID的命令。可以使用pgrep命令来查找指定进程名的PID。
    命令ps axj | grep myproc它将显示包含 “myproc” 关键字的进程信息。

解释一下这个命令的每个部分:

  1. ps命令用于显示当前正在运行的进程信息。
  2. axj选项组合用于显示所有进程的详细信息,并使用类似于BSD风格的输出格式。
  3. | 管道符将ps命令的输出传递给grep命令。
  4. grep命令用于过滤包含 “myproc” 关键字的行。

因此,ps axj | grep myproc命令将显示所有包含 “myproc” 关键字的进程信息。
ps axj | head -1 #显示头部

pgrep <进程名>
  1. /proc文件系统:Linux系统中的/proc目录是一个虚拟文件系统,可以通过读取其中的文件来获取进程相关的信息,包括PID。可以使用/proc/self来获取当前进程的PID。
cat /proc/self/status | grep "Pid"
  1. pidof命令:pidof命令用于根据进程名获取进程的PID。
    pidof <进程名>
    例如,要获取名为 “myproc” 的进程的PID,可以使用以下命令:

  2. pidof myproc
    top命令:top命令用于实时显示系统中运行的进程和系统资源的使用情况。
    top
    在top命令的输出中,可以查找特定进程的PID。

kill -9 进程编号

man getppid

获得父进程id

fork

创建子进程,之后父子共享代码
linux(进程)[6]_第8张图片

linux(进程)[6]_第9张图片
这个结果会打印出两个“you can see me!”
linux(进程)[6]_第10张图片
在这里插入图片描述

你可能感兴趣的:(linux,linux)