首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Linux进程ID号--Linux进程管理与调度(三)【转】

Linux 内核使用 task_struct 数据结构来关联所有与进程有关数据和结构,Linux 内核所有涉及到进程和程序所有算法都是围绕该数据结构建立,是内核中最重要数据结构之一。...进程ID概述 进程ID类型 要想了解内核如何来组织和管理进程ID,先要知道进程ID类型: 内核中进程ID类型用pid_type来描述,它被定义在include/linux/pid.h中: enum...是 Linux 中在其命名空间中唯一标识进程而分配给它一个号码,称做进程ID号,简称PID。...(轻量级进程组)ID标识 在一个进程中,如果以CLONE_THREAD标志来调用clone建立进程就是该进程一个线程(即轻量级进程Linux其实没有严格进程概念),它们处于一个线程组,该线程组所有线程...内核是如何设计task_struct中进程ID相关数据结构 Linux 内核在设计管理ID数据结构时,要充分考虑以下因素: 如何快速地根据进程 task_struct、ID类型、命名空间找到局部ID

5.8K10

Linux进程概念(二.查看进程进程与子进程进程状态详解)

mycode,它 PPID(Parent Process ID)是10138,表示它进程是PID为10138进程。...printf("I'm a process,pid:%d\n",id); sleep(2); }//写一个死循环,没两秒打印一次 return 0; } getgid()...在 Linux 中,每个进程都属于一个或多个组,getgid() 函数返回调用进程有效组 ID。...在Unix/Linux系统中,可以使用 getpid() 系统调用来获取当前进程PID,使用 getppid() 系统调用来获取当前进程进程PID。...下面是对这两个返回值解释: 给进程返回子进程 PID:在进程中,fork 返回新创建子进程进程 ID(PID),这个 PID 是子进程标识符,进程通过这个 PID 可以识别并操作子进程

1.4K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Linux】解决:为什么重复创建同一个【进程pid会变化,而ppid进程id不变?】

    前言 大家好吖,欢迎来到 YY 滴Linux 系列 ,热烈欢迎!...本章主要内容面向接触过Linux老铁 主要内容含: 1.系统调用接口查看pid,ppid pid:当前进程 ppid:进程 每一次启动进程, 系统会重新生成pid ,系统只保证当前生命周期内...pid有效; 但是 进程不会变 2.为什么ppid进程id不变?...——bash命令行解释器与bash进程 当我们运行一个进程时,命令行解释器会把这个指令解释成bash进程 接着再由这个bash进程执行对应命令 当这个子进程出现问题时,并不影响bash进程...即:每一条命令被执行,都属于bash进程 我们执行一段代码,parent对应是getppid()函数; 我们接着用ps+grep过滤指令查看这个16815进程,发现其就是bash进程

    20210

    Linux进程为何要苦苦地知道子进程死亡原因?

    白发人送黑发人 一个普遍常识是,在Linux里面总是“白发人送黑发人”,子进程死亡,进程透过wait()等待子进程死亡,并清理子进程僵尸,当然进程也可以因此而获得子进程死亡原因。.../a.out child process id: 3320 然后用信号2去杀死这个子进程3320: kill -2 3320 进程waitpid()返回,然后status里面获知原因,进程打印:...则进程探测到子进程死亡后,可打印退出状态: $ ..../a.out child process id: 3362 child process exits, status=1 由此可以看出,进程对子进程死亡和死亡原因是了如指掌。 ?...事出必有因 那么,进程为什么必须知道子进程死亡呢?进程为什么一定要苦苦地知道子进程死亡原因?

    2.1K20

    进程ID进程关系

    进程ID 进程相关 ID 有多种,除了进程标识 PID 外,还包括:线程组标识 TGID,进程组标识 PGID,回话标识 SID。...TGID/PGID/SID 分别是相关线程组长/进程组长/回话 leader 进程 PID。 下面分别介绍这几种ID。 PID 进程总是会被分配一个唯一标识它们进程ID号,简称 PID。...因此进程还可以注册 SIGCHLD 信号处理函数,异步回收资源。 如果进程提前结束,那么子进程将把1号进程 init 作为进程。总之,进程都有进程,负责进程结束后资源回收。...在子进程退出且进程完成回收前,子进程变成僵尸进程。僵尸进程持续时间通常比较短,在进程回收它资源后就会消亡。如果进程没有处理子进程终止,那么子进程就会一直处于僵尸状态。...会话、进程组关系 Linux 系统中可以有多个会话(session),每个会话可以包含多个进程组,每个进程组可以包含多个进程

    61223

    关于进程和子进程关系(UAC 绕过思路)

    假设是a进程创建了b进程,那么a进程就是b进程进程。...IceSworld,Process Explorer等) 查看时,会发现提权进程进程是创建它进程,这是由于AIS利用了CreateProcessAsUser() API中一个新功能,这里新功能就是将提权进程进程设置成创建该进程进程...,假设我们利用一下该API,我们就能够将自己进程进程设置为随意进程(要提权绕过UAC鸽子注意了),假设把木马进程进程设置为 杀软 ID或者csrss.exe ,notepad.exe 等可信进程...就能能设置这个被创建进程进程,这里也仿照黑防上贴下部分代码: DWORD pid = 0; /* 依据进程名获取随意进程Id */ GetProcessIdByName(L"explorer.exe...假设你调试程序检測进程,直接用以上办法启动它,当然进程就是他检測同意进程喽, 这里启动时要注意是设置CREATE_SUSPEND 就是创建挂起,然后在创建后使用ResumeThread恢复就能够顺利调试了

    1.6K30

    Linux系列(四):我经常用下列命令查看进程id

    序号 001 查看端口被哪个进程占用 1. lsof -i:端口号, 查看某一端口占用情况 [root@localhost bin]# lsof -i:8080 COMMAND PID USER FD...PID:进程ID,一般杀掉进程时就是指定进程PID USER:进程所有者 2. netstat -ntlp:查看当前所有tcp端口 结合grep可以进一步查看具体端口号占用情况 netstatstat...:::* LISTEN 3511/java 上述结果表示8080端口被一个进程ID为3511Java进程占用 [root@ops01 ~]# netstat...ID为13298node程序占用 序号 002 根据程序名称查看进程id 1. ps -ef|grep 进程名 ps -ef 是显示所有进程 UID:进程拥有者 PID:进程ID PPID:上级程序...ID C: CPU 使用资源百分比 STIME:系统启动时间 TTY:登入者终端机位置 TIME:使用掉 CPU 时间 CMD:所下达指令名称 例如查询nginx相关进程状态 [root@ops01

    2.3K10

    php 多进程编程进程阻塞与非阻塞实例分析

    本文实例讲述了php 多进程编程进程阻塞与非阻塞。分享给大家供大家参考,具体如下: php中进程阻塞,主要是进程等待子进程退出。 1.php代码如下: <?...pcntl_wait($status); } else { //这里是子进程空间 echo "进程ID: ", posix_getppid(), " 进程ID : ", posix_getpid...echo "进程ID: ", posix_getppid(), " 进程ID : ", posix_getpid(), " {$i} \r\n"; //我们让子进程等待3秒,再退出...status, WNOHANG); } else { //这里是子进程空间 echo "进程ID: ", posix_getppid(), " 进程ID : ", posix_getpid...代码3.php与2.php效果一样,pcntl_wait()函数作用只是用来让进程等待子进程退出,默认情况下会阻塞主进程

    89341

    Linux进程——Linux进程概念(PCB理解)

    前言:在了解完冯诺依曼体系结构和操作系统之后,我们进入了Linux下一篇章Linux进程,但在学习Linux进程之前,一定要阅读理解上一篇内容,理解“先描述,再组织”才能更好理解进程含义。...Linux进程学习基础 本篇主要内容: 进程概念 通过系统调用获取进程标示符 1....: 指令:kill -9 进程id 注意:这里-9是信号参数,后面会提到,现在直接使用即可 使用指令能直接杀死进程 以上说明我们所有运行指令,软件,自己写可执行程序都是进程!...而这PPID就是进程 我们依然可以用函数来查看进程: 函数:getppid 因此我们可以知道这两个函数: 当我们不断地启动结束进程时,PID每一次数据都不一样,但是PPID却不会改变...,让我们来查看一下进程信息 如果我们直接杀死进程bash,那么我们shell会直接挂掉 3.

    21510

    Linux进程——Linux下常见进程状态

    本篇主要内容: 操作系统中进程状态 Linux进程状态 在开始之前,我们先来简单了解以下进程状态 进程本质就是PCB中一个变量!!! 所谓状态变化,本质就是修改整形变量!!!...Linux进程状态 下面是一段库中找状态定义: static const char * const task_state_array[] = { "R (running)", /* 0 */ "...因为循环打印时,IO输出是很慢打印字符会和外设屏幕交互,因此大部分时间进程都处于阻塞状态,但也有极少时间在打印,所以查看进程状态时,我们偶尔可以看见R状态 如果我们将printf删除,单留while,...此时,恰好系统内内存资源已经严重不足了,系统压力太大,Linux在是在没办法时候,会通过杀掉进程,节省资源,来不及进程反应直接被系统 “干掉” 。...总结 在了解Linux进程分类时,我们通常是先了解操作系统进程,因为二者有一定联系,了解操作系统能更好理解进程在操作系统中运行关系。进程状态在进程中也极为重要,希望大家能理解透彻!

    13510

    Linux进程调度_linux进程查看和调度

    Linux 系统为了提升响应速度,倾向于优先调度 I/O 消耗型。...一、普通进程Linux 中普通进程依赖称之为 nice 值 东东来进行进程优先级描述。nice 值范围是 [-20, 19]。...—— 小结 实时进程优先级:value 越高,优先级越大 普通进程优先级:nice值越高,普通进程优先级越小 任何实时进程优先级 > 普通进程 Linux 调度算法 ---- Linux 中有一个总调度结构...Linux 调度时机 ---- 一、进程切换 从进程角度看,CPU是共享资源,由所有的进程按特定策略轮番使用。...也可以用 pidstat -w 命令查看进程切换每秒统计值: pidstat -w 1 Linux 3.10.0-229.14.1.el7.x86_64 (bj71s060) 02/01/2018

    20.7K10

    linux命令讲解大全】076.pgrep命令:查找和列出符合条件进程ID

    pgrep 根据用户给出信息在当前运行进程中查找并列出符合条件进程ID(PID) 补充说明 pgrep 命令以名称为依据从运行进程队列中查找进程,并显示查找到进程ID。...每一个进程ID以一个十进制数表示,通过一个分割字符串和下一个ID分开,默认分割字符串是一个新行。对于每个属性选项,用户可以在命令行上指定一个以逗号分割可能值集合。...语法 pgrep [options] 选项 -o:仅显示找到最小(起始)进程号; -n:仅显示找到最大(结束)进程号; -l:显示进程名称; -P:指定进程号; -g:指定进程组...; -t:指定开启进程终端; -u:指定进程有效用户ID。...参数 :指定要查找进程名称,同时也支持类似grep指令中匹配模式。

    37810

    Linux进程管理

    02 — ps ps 命令用于显示当前系统中由该用户运行进程列表 选项 说明 -ef 查看所有进程及其 PID(进程号)、系统时间、命令详细目录、执行者等。...-aux 除可显示 -ef 所有内容外,还可显示 CPU 及内存占用率、进程状态。 -w 以加宽方式显示,这样可以显示较多信息。...03 — pidof 根据进程名查询进程号 oracle@yaoyuan ~$ pidof mysqld 1907 oracle@yaoyuan ~$ ps -ef|grep mysqld mysql...00:01:57 /usr/sbin/mysqld 04 — kill 而 kill 命令用于输出特定信号给指定进程号(PID)进程并根据该信号完成指定行为,其中可能信号有进程挂起、进程等待、...07 — crontab 我们希望 Linux 系统能够周期性地、有规律地执行某些具体任务,那么Linux 系统中默认启用 crond 服务简直再适合不过了 创建、编辑计划任务命令为“crontab

    1.5K20

    Linux进程——进程创建(fork原理)

    查看进程第二种方法 在Linux系统中,不只有ps能够查看进程,还存在着一个动态目录proc,该目录存放了所有存在进程,目录名称。它会随着进程改变而随时更新它内容!...创建子进程 2.1 系统调用函数fork 在Linux中,进程创建方式有两种: 命令行中直接启动进程 通过代码创建 而在用代码创建进程时,实则是进行了系统调用,这里我们就得在学习一个系统调用函数...我们想让子进程协作进程完成一些工作,这些工作是单进程解决不了,因此子进程创建是为了协助进程,因此父子进程是不一样事情 我们怎么保证父子进程是不一样事情呢?...在用进程中,一个进程可能会有多个子进程,但是子进程永远都只有一个进程,所以 :子 只会是 1 :n,为了能够更好管理这些子进程,就必须返回具有唯一性pid。...变量id进程定义变量,保存数据,返回时候发生写时拷贝,不同 进程执行代码中变量id获取值不同,所以id进程和子进程中值不同 3.

    19510
    领券