欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

UID、PID、PPID是什么? 有大用


UID是用户ID,PID是进程ID,PPID是父进程ID。

UID

UID 用户身份证明(User Identification)的缩写。UID用户在注册后,系统会自动的给你一个UID的数值。意思就是给这名用户编个号。

 

PID

PID(Process Identification)操作系统里指进程识别号,也就是进程标识符。操作系统里每打开一个程序都会创建一个进程ID,即PID。PID(进程控制符)英文全称为Process Identifier。PID是各进程的代号,每个进程有唯一的PID编号。它是进程运行时系统分配的,并不代表专门的进程。在运行时PID是不会改变标识符的,但是进程终止后PID标识符就会被系统回收,就可能会被继续分配给新运行的程序。
  只要运行一程序,系统会自动分配一个标识。是暂时唯一:进程中止后,这个号码就会被回收,并可能被分配给另一个新进程。只要没有成功运行其他程序,这个PID会继续分配给当前要运行的程序。如果成功运行一个程序,然后再运行别的程序时,系统会自动分配另一个PID。

 

PPID

代表当前进程的父进程ID;

来自  https://www.cnblogs.com/yyxianren/p/10941856.html


Linux中的程序和进程,PID和PPID


环境:Vmware Workstation;CentOS-6.4-x86_64

程序和进程:

1、程序:程序是静止的,程序就是磁盘上的一个文件。

2、进程:进程是一个正在执行的程序的实例。

3、进程是动态的。

4、一旦程序被操作系统加载进内存了,那么这程序就成为了进程。

PID和PPID:

1、PID(process ID):

PID是程序被操作系统加载到内存成为进程后动态分配的资源。

每次程序执行的时候,操作系统都会重新加载,PID在每次加载的时候都是不同的。

2、PPID(parent process ID):PPID是程序的父进程号。

3、PID和PPID都是非零的整数。

4、PID是唯一的,一个PID只标识一个进程。

5、一个进程创建的另一个新进程称为子进程。相反地,创建子进程的进程称为父进程。

6、对于一个普通的用户进程,它的父进程就是执行它的哪个Shell,对于Linux而言,Shell就是bash。

7、bash所在的目录:[negivup@localhost bin]$ cd /bin | ls bash

特别说明:

1、所有进程追溯其祖先最终都会落到进程号为1的进程身上,这个进程叫init进程

2、init进程是linux内核启动后第一个执行的进程。

3、init引导系统,启动守护进程并且运行必要的程序。

获取PID和PPID的函数:

1、得到进程的PID:pid_t getpid(void);

2、得到进程的PPID:pid_t getppid(void);

通过程序获取当前程序的PID和PPID:


  1. #include <stdio.h>
  2. #include <sys/types.h>
  3. #include <unistd.h>
  4. int main(int argc, char *args[])
  5. {
  6. // 获取当前进程的PID
  7. pid_t pid = getpid();
  8. printf("pid = %d\n", pid);

  9. // 获取当前进程的PPID
  10. pid_t ppid = getppid();
  11. printf("ppid = %d\n", ppid);

  12. return 0;
  13. }


PS:根据传智播客视频学习整理得出。


来自   https://blog.csdn.net/sinat_25457161/article/details/48596797

普通分类: