秒懂:进程相关的操作
1.进程的查看
1.1创建test.cc文件,运行以下代码
#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>
int main()
{
while(1)
{
sleep(1);
}
return 0;
}
1.2 执行以下命令
1. 运行test.cc文件 并将其最终的可执行文件命名为 test
gcc test.cc -o test
1.21. 查看进程
常见的
ps
命令用法包括:
ps
:显示当前用户的正在运行的进程。ps -ajx
:ps -ajx
是一个常用的 Unix/Linux 命令,用于显示当前系统中所有进程的详细信息,并以完整的格式输出ps -ajx | grep process_name
:查找特定进程名的进程
ps axj | head -1 && ps axj | grep test | grep -v grep
1.22查看结果展示:
PPID PID PGID SID TTY TPGID STAT UID TIME COMMAND
23491 25318 25318 23491 pts/0 25318 S+ 1000 0:00 ./test
2 进程属性的查看:
2.1创建test.cc文件,运行以下代码
#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>
int main()
{
int ret = fork();
if(ret < 0){
perror("fork");
return 1;
}
else if(ret == 0){ //child
printf("I am child : %d!, ret: %d\n", getpid(), ret);
}
else{ //father
printf("I am father : %d!, ret: %d\n", getpid(), ret);
}
sleep(1);
return 0;
}
getgid() 函数是一个系统调用,用于获取调用进程的有效组 ID(Group ID)。在 Linux 中,每个进程都属于一个或多个组,getgid() 函数返回调用进程的有效组 ID。
其函数原型定义在 <unistd.h> 头文件中:
#include <unistd.h> gid_t getgid(void);
其中,gid_t 是一个类型,通常是一个无符号整数类型,用于表示组 ID。
2.2 通过 /proc 系统文件夹看进程
在Linux系统中,/proc文件系统提供了关于运行中进程的详细信息。你可以通过查看/proc文件系统中的特定目录和文件来获取有关进程的信息。下面是一些你可以在/proc文件系统中找到的有关进程的信息:1.proc/[PID]:这是一个以进程ID(PID)命名的目录,其中包含有关特定进程的详细信息。你可以使用命令 ls /proc/[PID] 来查看。
2.proc/[PID]/status:此文件包含有关进程的各种状态信息,例如进程ID、父进程ID、进程状态、内存使用情况等。你可以使用命令 cat /proc/[PID]/status 查看。
3.proc/[PID]/cmdline:此文件包含启动进程时使用的完整命令行参数。你可以使用命令 cat /proc/[PID]/cmdline 查看。
4.proc/[PID]/exe:这是一个符号链接,指向正在运行的进程的可执行文件。你可以使用命令 ls -l /proc/[PID]/exe 查看。
5.proc/[PID]/fd:这是一个目录,包含有关进程打开的所有文件描述符的信息。你可以使用命令 ls /proc/[PID]/fd 查看。
2.3 执行以下命令
2.31. 运行test.cc文件 并将其最终的可执行文件命名为 test
gcc test.cc -o test
2.32.运行结果:
2.33. 查看进程
ps axj | head -1 && ps axj | grep test | grep -v grep