管理概念
先描述,再组织
进程
启动一个软件就相当于启动了一个进程
Linux下执行一条命令就在系统层面创建了一个进程!!
如何管理
进程=对应的代码和数据 + 进程对应的PCB结构体
PCB(process control block)
在Linux系统中,可以使用以下几种方式获取进程的PID(进程ID):
- getpid()函数:可以使用C/C++的系统调用函数
getpid()
来获取当前进程的PID。该函数定义在<sys/types.h>
头文件中。
#include <sys/types.h>
#include <unistd.h>
int main() {
pid_t pid = getpid();
printf("当前进程的PID:%d\n", pid);
return 0;
}
- ps命令:在终端中可以使用
ps
命令来查看当前正在运行的进程以及它们的PID。常用的ps
命令选项包括-e
(显示所有进程)、-f
(显示完整格式)和-l
(显示更详细的信息)。
ps -ef
- pgrep命令:
pgrep
命令是一个用于根据进程名或其他属性查找进程PID的命令。可以使用pgrep
命令来查找指定进程名的PID。
命令ps axj | grep myproc
它将显示包含 “myproc” 关键字的进程信息。
解释一下这个命令的每个部分:
ps
命令用于显示当前正在运行的进程信息。axj
选项组合用于显示所有进程的详细信息,并使用类似于BSD风格的输出格式。|
管道符将ps
命令的输出传递给grep
命令。grep
命令用于过滤包含 “myproc” 关键字的行。
因此,ps axj | grep myproc
命令将显示所有包含 “myproc” 关键字的进程信息。
ps axj | head -1 #显示头部
pgrep <进程名>
- /proc文件系统:Linux系统中的
/proc
目录是一个虚拟文件系统,可以通过读取其中的文件来获取进程相关的信息,包括PID。可以使用/proc/self
来获取当前进程的PID。
cat /proc/self/status | grep "Pid"
-
pidof命令:pidof命令用于根据进程名获取进程的PID。
pidof <进程名>
例如,要获取名为 “myproc” 的进程的PID,可以使用以下命令: -
pidof myproc
top命令:top命令用于实时显示系统中运行的进程和系统资源的使用情况。
top
在top命令的输出中,可以查找特定进程的PID。
kill -9 进程编号
man getppid
获得父进程id
fork
这个结果会打印出两个“you can see me!”