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

探索进程进程

: 通过getpid()得到的PIDps指令获取的进程PID是一致的,都是5258 一个进程属性,除了有自己的进程PID还有进程PID,ps指令查询到的PPID是当前进程进程的PID,可以是用函数...先来认识一下fork函数: fork函数会以调用该函数的进程作为进程创建一个进程 创建成功时,会在进程返回进程的PID,在进程返回0;如果失败,在进程返回-1,没有进程创建。...**为什么说进程进程的代码和数据是共享的?**刚刚谈到,进程创建了属于自己的PCB对象,但是没有代码和数据,因此它只能使用进程的代码和数据,也就是说父子进程的代码和数据是共享的。...也就是说一个进程退出、失败、崩溃了,都不会影响其他进程进程进程也是两个进程,也具有独立性,父子进程不能访问同一份数据,数据在代码执行过程可能会被修改。...进程可以把进程的数据全被拷贝一份,但是大部分数据对于进程来说可能都是没用的,这就造成了浪费,所以操作系统只是把进程数据层面的代码临时拷贝一份给进程,即进程创建后,会共享进程的代码和数据,

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

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

这种关系具有以下特点行为: 父子关系: 进程进程是创建它的进程,即进程。 每个进程都有唯一的进程。...资源继承: 进程继承了进程的大部分属性资源,包括内存映像、文件描述符、信号处理器等。 进程在创建时拥有进程的副本,但在其生命周期中可以独立修改这些副本。...它会复制调用进程进程)的内存上下文,包括代码段、数据段、堆栈等,然后将这个副本分配给新创建的进程进程)。fork 系统调用的原型通常定义在 头文件。...为了区分进程进程,fork 在进程返回 0,表示这是进程执行的代码路径。...因此,fork 在执行时会返回两次:一次在进程(返回进程的 PID),另一次在进程(返回 0)。这样做是为了让进程进程可以根据返回值来执行不同的代码路径。

79010

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

在windows。 假设是a进程创建了b进程,那么a进程就是b进程进程。...IceSworld,Process Explorer等) 查看时,会发现提权的进程进程是创建它的进程,这是由于AIS利用了CreateProcessAsUser() API的一个新的功能,这里的新功能就是将提权进程进程设置成创建该进程进程...,假设我们利用一下该API,我们就能够将自己的进程的的进程设置为随意进程(要提权绕过UAC的鸽子注意了),假设把木马进程进程设置为 杀软 的ID或者csrss.exe ,notepad.exe 等可信进程...的參数被设置为EXTENDED_STARTUPINFO_PRESENT, 这就是有扩展启动信息的结构体, 这里的IpStartupInfo參数须要填好STARTUPEX 结构,这个结构由STARTUOINFO结构PROC_THREAD_ATTRIBUTE_LIST...所以说进程进程不一定是进程的创建者,所以那一群依据进程来看进程是否可信的杀软就呵呵了。 可是这里说下 360 这个绕只是,原因是啥哪? 记得我开篇时说过道高一尺,魔高一丈吗?

1.6K30

进程退出时如何确保进程退出?

前言 进程退出的时候,进程能够收到进程退出的信号,便于管理,但是有时候又需要在进程退出的时候,进程也退出,该怎么办呢? 进程退出时,进程会如何?...\n"); sleep(1); } return 0; } 在这个程序,我们为了让进程先退出,进程sleep了10秒。...或许我们可以在进程进程之间建立通信管道,一旦通信异常,则认为进程退出,进程自己也回收资源退出。但是这样做总觉得不是很正经。有没有已有的函数帮我们做这件事呢?prctl函数可以帮助我们。...第一个参数,有一个选项,叫做PR_GET_PDEATHSIG: PR_SET_PDEATHSIG (since Linux 2.1.57) Set the...练习 尝试将上面的代码在非图形界面的linux操作系统运行,看看最终被收养的是否为init进程。 交流 虽然本文方法可行,但并不适用于所有操作系统,你有什么更好的办法解决上面的问题?

11.8K21

如何在进程读取(外部)进程的标准输出标准错误输出结果

最近接手一个小项目,要求使用谷歌的aapt.exe获取apk软件包的信息。依稀记得去年年中时,有个同事也问过我如何获取被调用进程的输出结果,当时还研究了一番,只是没有做整理。...它是我们启动进程时,控制进程启动方式的参数。...HANDLE hStdOutput; HANDLE hStdError; } STARTUPINFO, *LPSTARTUPINFO;        粗看该结构体,我们可以知道:我们可以通过它控制窗口出现的位置大小还有显示方式...我们之后将hWrite交给我们创建的进程,让它去将信息写入管道。而我们进程,则使用hRead去读取进程写入管道的内容。...设置标准输出标准错误输出句柄 si.hStdError = hWrite; // 把创建进程的标准错误输出重定向到管道输入 si.hStdOutput = hWrite

3.8K10

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

白发人送黑发人 一个普遍的常识是,在Linux里面总是“白发人送黑发人”,进程死亡,进程透过wait()等待进程死亡,并清理进程僵尸,当然进程也可以因此而获得进程的死亡原因。...上述代码进程在第18行通过pause()等待信号,进程在代码的第22行通过waitpid()等待进程的结束。其中的参数status是一个输出参数,可以获得进程死亡的原因。...则进程探测到进程死亡后,可打印它的退出状态: $ ..../a.out child process id: 3362 child process exits, status=1 由此可以看出,进程对子进程的死亡死亡原因是了如指掌。 ?...在wait_task_zombie()进程会透过进程的僵尸分析获得进程的exit_code组合,并进一步拼装status。 事出必有因 那么,进程为什么必须知道子进程的死亡呢?

2K20

Linux系统进程编程之回收进程(三)

在上一篇文章,我们介绍了“僵尸进程“孤儿进程”的基本用法。但是我们还没有意识到出现了“僵尸进程”的危害。...“僵尸进程”是一个早已死亡的进程,而且“僵尸进程”已经放弃了几乎所有的内存空间,没有任何可执行代码,也不能被调度,但在进程表(processs table)仍占了一个位置(slot),记载该进程的退出状态信息供其他进程收集...,回收同时还可以得知被回收进程的(ID退出状态)。...二、第二招:发送SIGCHILD信号: 1、我们还可以发送SIGCHILD信号来防止产生僵尸进程,当进程退出时向进程发送SIGCHILD信号,进程处理SIGCHILD信号,然后用上面信号处理函数调用...此时如果进程执行waitpid时进程已经先结束等待回收则waitpid直接回收成功,返回值是回收的进程的PID; 如果进程waitpid时进程尚未结束则进程立刻返回(非阻塞),但是返回值为

3.3K20

Linux】静态进程动态进程

引言 在Linux环境进程的加载方式涉及到静态进程动态进程两个概念。这两种方式都有各自的优势劣势,而正确选择加载方式对于应用程序的性能管理至关重要。...以下是关于静态进程的主要特点优缺点: 特点: 独立性强: 静态进程是完全自包含的,不依赖于系统是否存在相应的动态链接库。...以下是关于动态进程的主要特点优缺点: 特点: 依赖外部共享库: 动态进程在运行时需要依赖外部的共享库,这些库在程序启动时由动态链接器加载到内存。...易于更新: 如果共享库有更新,只需要替换共享库而不需要重新编译部署所有程序。 缺点: 依赖性: 动态进程需要系统存在相应的共享库,否则无法正常运行。...部署相对复杂: 需要确保系统存在所需的共享库,可能需要进行依赖性检查安装。

13410

Windows内核之进程的终止进程

1 进程终止的方法: 主线程的进入点函数返回(最好使用这种方法) 进程的一个线程调用ExitProcesss函数(应该避免使用这样的方法)。...还有一个进程的线程调用TerminateProcess函数(应该避免使用这样的方法)。 进程的全部线程自行终止执行(这样的情况差点儿从未发生)。...假设在进入点函数调用ExitThread,那么主线程就会停止执行,可是假设进程假设还有其它线程的话,进程便不会终止。...3 进程 程序要实现一段功能一共同拥有3种方法: 调用函数 开辟新线程 开辟新进程 3.1 调用函数 调用函数时很常见的,可是它的缺点是由于在同一个线程...3.3 开辟进程 这样有点是既能够保护数据,能够同步运行,也能够等待新进程运行完成再去运行其它进程的代码。缺点是开辟新进程,会造成地址空间的浪费。

1.7K20

L010LinuxandroidNDK之linux避免僵尸进程进程退出的处理

L010LinuxandroidNDK之linux避免僵尸进程进程退出的处理 如果你在程序fork出一个进程,没有好好处理进程退出后的相关事宜,那么就有可能召唤出传说中进程界的僵尸---僵尸进程...,并不能将其完全销毁) 僵尸进程是怎么样产生 在Linux进程的状态,僵尸进程是非常特殊的一种,它已经放弃了几乎所有内存空间,没有任何可执行代码,也不能被调度,仅仅在进程列表中保留一个位置,记载该进程的退出状态等信息供其他进程收集...异步回收僵尸进程: fork()之后,进程从父进程获取了一份拷贝,进程分别独立运行,僵尸进程的产生是因为进程没有给进程“收尸”造成的,又可以根据危害程度分为下述两类: 总体来说:当进程结束之后...,但进程未结束之前,进程将成为僵尸进程。...(1)当进程结束之后,但进程未结束之前,进程将成为僵尸进程进程结束后僵尸被init进程回收。

3.1K40

进程欺骗实践

文章前言 监控进程进程之间的关系是威胁检测团队检测恶意活动的常用技术,例如,如果powershell是进程,而Microsoft Word是进程,这是一种折中的行为,各种EDR可以很容易地检测到这种异常活动...,这时红队可以考虑使用进程PID欺骗作为逃避方法,Windows API调用"CreateProcess"允许用户传入一个用于分配PID的参数,它可以用于指定当前进程进程。...项目介绍 https://github.com/Al1ex/SelectMyParent image.png 进程欺骗 Step 1:选择进程并确定其PID image.png Step 2:之后执行以下命令进行进程欺骗...SelectMyParent.exe notepad 928 image.png Step 3:使用process Explor查看进程树,可以看到成功欺骗 image.png 参考链接 https

1.4K20

Linux查看进程、杀死进程、进入进程的命令

# killall -9 NAME 进程杀死 HUP 1 控制的终端/程序中断 INT 2 键盘的插入指令(同 Ctrl + C) QUIT 3 键盘的中断指令(同 Ctrl + \) TERM...然而,如果进程启动了进程,只杀死进程进程仍在运行,因此仍消耗资源。为了防止这些所谓的“僵尸进程”,应确保在杀死进程之前,先杀死其所有的进程。...当使用该选项时,kill命令也试图杀死所留下的进程。但这个命令也不是总能成功--或许仍然需要先手工杀死进程,然后再杀死进程。...*TERM信号 给进程发送一个TERM信号,试图杀死它和它的进程。 # kill -TERM PPID *killall命令 killall命令杀死同一进程组内的所有进程。...其允许指定要终止的进程的名称,而非PID。 # killall httpd *停止重启进程 有时候只想简单的停止重启进程

11.5K30

subprocess:Python创建进程

前言 subprocess库提供了一个API创建进程并与之通信。这对于运行生产或消费文本的程序尤其有好处,因为这个API支持通过新进行的标准输入输出通道来回传数据。...returncode为进程的退出状态码。通常情况下,退出状态码为0则表示进程成功运行了;一个负值-N表示这个子进程被信号N终止了。...对于run()函数启动的进程,它的标准输入输出通道会绑定到进程的输入输出。这说明调用程序无法捕获命令的输出。不过,我们可以通过为stdoutstderr参数传入PIPE来捕获输出,以备以后处理。...Popen的构造函数利用参数建立新进程,使进程可以通过管道与之通信。 下面,我们来分别介绍进程间通信的方式。...连接管道段 在Linux系统,我们可以将多个命令连接成一个管线,即可以把它们的输入输出串联在一起。

45070

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

一、普通进程Linux 普通进程依赖称之为 nice 值 的东东来进行进程的优先级描述。nice 值的范围是 [-20, 19]。...—— 小结 实时进程优先级:value 越高,优先级越大 普通进程优先级:nice值越高,普通进程的优先级越小 任何实时进程的优先级 > 普通进程 Linux 调度算法 ---- Linux 中有一个总的调度结构...Linux 调度时机 ---- 一、进程切换 从进程的角度看,CPU是共享资源,由所有的进程按特定的策略轮番使用。...进程切换分为自愿切换(Voluntary)强制切换(Involuntary),以上场景1属于自愿切换,场景23属于强制切换。...进程自愿切换(Voluntary)强制切换(Involuntary)的次数被统计在 /proc//status ,其中voluntary_ctxt_switches表示自愿切换的次数,nonvoluntary_ctxt_switches

20.6K10

Linux进程状态&&僵尸进程孤儿进程&&阻塞、挂起运行

进程自己醒来;2. 重启–断点 3. 僵尸进程孤儿进程 3.1 僵尸进程 Linux中一个进程的退出,它会将自己的退出信息保留在自己的PCB。...,进程就会变成孤儿进程, 而孤儿进程一般会被1号进程(OS本身)进行领养。...因为直接在命令行启动的进程,它的进程是bash,bash会自动回收新进程的Z。 4. 进程的阻塞、挂起运行 在网上找的一张进程状态图: 终止状态就等价于Z状态X状态。...阻塞运行的状态变化,往往伴随进程PCB被连入到不同的队列。...CPU内部的所有寄存器的临时数据,叫做进程的上下文。 进程在切换,最重要的一件事就是:上下文数据的保护恢复。

32310
领券