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

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

ps 是一个常用 Unix/Linux 命令,用于显示当前系统中运行进程信息。...在 Linux 中,每个进程都属于一个或多个组,getgid() 函数返回调用进程有效组 ID。...这种关系具有以下特点和行为: 父子关系: 子进程进程是创建它进程,即进程。 每个进程都有唯一进程。...在Unix/Linux系统中,可以使用 getpid() 系统调用来获取当前进程PID,使用 getppid() 系统调用来获取当前进程进程PID。...3.3Linux中状态初步认识 一个进程可以有几个状态(在Linux内核里,进程有时候也叫做任务)进程状态通常由几个不同状态标识符表示。

31010

探索进程和子进程

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

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

进程欺骗实践

文章前言 监控进程和子进程之间关系是威胁检测团队检测恶意活动常用技术,例如,如果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进程为何要苦苦地知道子进程死亡原因?

白发人送黑发人 一个普遍常识是,在Linux里面总是“白发人送黑发人”,子进程死亡,进程透过wait()等待子进程死亡,并清理子进程僵尸,当然进程也可以因此而获得子进程死亡原因。...Show me the code”,我们来看看实际代码: ? 上述代码中,子进程在第18行通过pause()等待信号,进程在代码第22行通过waitpid()等待子进程结束。...则进程探测到子进程死亡后,可打印它退出状态: $ ....事出必有因 那么,进程为什么必须知道子进程死亡呢?进程为什么一定要苦苦地知道子进程死亡原因?...所以,这个过程应该由Linux某种机制自动完成,比如如果init知道了httpd死亡的话,它可以内在地自动重新启动一个httpd进程

2K20

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

前言 子进程退出时候,进程能够收到子进程退出信号,便于管理,但是有时候又需要在进程退出时候,子进程也退出,该怎么办呢? 进程退出时,子进程会如何?...17433进程id是17432,但是在10秒后,它进程变成了1658。...另外还可以观察到,该进程也是其他系统进程进程。 如何确保进程退出同时,子进程也退出? 既然如此,如何确保进程退出同时,子进程也退出呢?...内容很多,主要意思为:设置一个信号,当进程退出时候,子进程将会收到该信号。 那么根据这个,我们完全可以在进程退出时,也给子进程一个退出信号。...练习 尝试将上面的代码在非图形界面的linux操作系统中运行,看看最终被收养是否为init进程。 交流 虽然本文方法可行,但并不适用于所有操作系统,你有什么更好办法解决上面的问题?

11.6K21

Fork进程后,是否与进程共享stdio?

今天想到一个问题:如果我在代码里面,fork当前进程,然后两个进程都执行scanf(),那会发生什么?键盘输入数据是定向到哪个进程呢?...scanf("%c\n", &c); printf("parent process: %c\n", c); } } } 根据上面这串代码,进程和子进程都会调用...scanf,并打印自己读取到数据。...process: 4 child process: 5 parent process: 5 parent process: 6 child process: 6 child process: 可以看到,进程和子进程都读取了键盘数据...具体是哪一个进程获取到数据,则与进程调度有关。这提醒了我一点:多个进程同时读取同一个stdin的话,会造成获取到数据不完整问题。(这与stdin默认为tty这样字节设备特性有关)

13520

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

假设是a进程创建了b进程,那么a进程就是b进程进程。...IceSworld,Process Explorer等) 查看时,会发现提权进程进程是创建它进程,这是由于AIS利用了CreateProcessAsUser() API中一个新功能,这里新功能就是将提权进程进程设置成创建该进程进程...,假设我们利用一下该API,我们就能够将自己进程进程设置为随意进程(要提权绕过UAC鸽子注意了),假设把木马进程进程设置为 杀软 ID或者csrss.exe ,notepad.exe 等可信进程...假设你调试程序检測进程,直接用以上办法启动它,当然进程就是他检測同意进程喽, 这里启动时要注意是设置CREATE_SUSPEND 就是创建挂起,然后在创建后使用ResumeThread恢复就能够顺利调试了...所以说进程进程不一定是进程创建者,所以那一群依据进程来看进程是否可信杀软就呵呵了。 可是这里说下 360 这个绕只是,原因是啥哪? 记得我开篇时说过道高一尺,魔高一丈吗?

1.5K30

linux通过进程名杀死进程_linux关闭进程命令

笔记:根据一个进程名字或启动此进程命令(连续一部分即可)杀死进程 一、使用单条命令 ps -ef | grep 进程名/启动进程命令 | grep -v grep | awk ‘{print $2...}’ | xargs kill -9 执行结果: [1]-  已杀死               sleep 200 [2]+  已杀死               sleep 200 二、编写脚本 linux.../bin/bash # 脚本名:kill_process.sh # 脚本功能:强制杀死进程 方式kill -9     # 1通过ps查询进程id     # 2使用kill -9 强制终止进程...请使用此方式运行:/bin/bash kill_process.sh 进程名”     exit 1 fi # 获取要被杀死进程名 pName=$1 <<!    ...————————————————————— # 根据进程名查询包含进程进程 并排除grep查询进程和此脚本进程 ps -ef | grep “$pName” | grep -v grep | grep

15.8K20

Linux进程学习【进程状态】

本文将会带着大家认识各种 进程 状态 ---- 正文 在谈 进程状态 之前,首先要回顾下之前 进程 相关知识 OS管理本质是先描述,再组织 OS并非直接管理 进程 ,而是管理 进程 PCB(...,即把手机揣进兜里,然后 专心执行走路这个 进程 进程状态 进程 有各种运行状态,方便OS进行管理,在 Windows 中,进程 状态是这样 而在我们 Linux 中,新建、就绪、运行都可以看作...运行 R 这一个状态,所以比较清晰 而我们今天要学习正是 Linux 进程 状态 进程是何种状态,取决于此进程PCB在哪里排队 ️运行 R 首先来看看第一种状态 R 以我们以往认知来说...僵尸 T 状态 通俗来说,僵尸状态 是给 进程 准备 当 子进程 被终止后,会先维持一个 僵尸 状态,方便 进程 来读取到 子进程 退出结果,然后再将 子进程 回收 单纯在 bash 环境下终止...进程,此时 子进程 会被OS领养 子进程 进程 变为 1号进程进程 就变成了一个 孤儿进程 发出指令终止 进程 假设 子进程 不被 1号进程 领养 子进程 退出时就会无人回收

19430

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.5K10

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

(1)强行中止(经常使用杀掉)一个进程标识号为324进程: #kill -9 324 (2)解除Linux系统死锁 在Linux中有时会发生这样一种情况:一个程序崩溃,并且处于死锁状态。...(4)killall命令 Linux下还提供了一个killall命令,可以直接使用进程名字而不是进程标识号,例如: # killall -HUP inetd *杀死进程最安全方法是单纯使用kill...然而,如果进程启动了子进程,只杀死进程,子进程仍在运行,因此仍消耗资源。为了防止这些所谓“僵尸进程”,应确保在杀死进程之前,先杀死其所有的子进程。...当使用该选项时,kill命令也试图杀死所留下进程。但这个命令也不是总能成功--或许仍然需要先手工杀死子进程,然后再杀死进程。...*TERM信号 给进程发送一个TERM信号,试图杀死它和它进程。 # kill -TERM PPID *killall命令 killall命令杀死同一进程组内所有进程

11.2K30

Linux进程学习【进程地址】

"字符串地址:%p\n", ps); //%p 专门用来打印地址信息 return 0; } 利用前面学习 fork 函数创建子进程,使得子进程进程共同使用一个变量 #include <stdio.h...d 共享值地址:%p\n", getpid(), getppid(), val, &val); exit(0); } waitpid(id, 0, 0); printf("我是进程...光有 虚拟地址空间 是不够,还需要一套完整 ‘‘翻译’’ 机制进行程序寻址,如 Linux 页表 + MMU ️页表+MMU 页表 本质上就是一张表,操作系统 会为每个 进程 分配一个 页表...️写时拷贝 Linux 中存在一个很有意思机制:写时拷贝 这是一种 赌bo 行为,OS 此时就赌你不会对数据进行修改,这样就可以 使多个 进程 在访问同一个数据时,指向同一块空间,当发生改写行为时...保护物理内存与其他进程(权限设置) 将 进程管理 和 内存管理 进行 解耦,方便 OS 进行更高效管理 可以让进程以统一视角看待自己代码和数据 ---- 总结 以上就是本篇关于 Linux进程学习

14820

linux进程

1.查进程 ps命令查找与进程相关PID号: ps a 显示现行终端机下所有程序,包括其他用户程序。 ps -A 显示所有程序。...ps c 列出程序时,显示每个程序真正指令名称,而不包含路径,参数或常驻服务标示。 ps -e 此参数效果和指定"A"参数相同。 ps e 列出程序时,显示每个程序所使用环境变量。...ps s 采用程序信号格式显示程序状况。 ps S 列出程序时,包括已中断子程序资料。 ps -t 指定终端机编号,并列出属于该终端机程序状况。...2.杀进程和查看进程对应PID目录下exe文件信息 最常用方法是ps -aux或者ps -ef 然后再通过管道使用grep命令过滤查找特定进程,然后再对特定进程进行操作。...使用kill命令结束进程:kill -a 进程pid 或者 killall 程序名 查看对应PID目录下exe文件信息: [root@localhost postfix]# ps -aux|grep

8.6K100

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

本文实例讲述了php 多进程编程进程阻塞与非阻塞。分享给大家供大家参考,具体如下: php中进程阻塞,主要是进程等待子进程退出。 1.php代码如下: <?...,也就是主进程 //我们for循环第一次进入到这里时,pcntl_wait会挂起当前主进程,等待第一个子进程执行完毕退出 //注意for循环代码是在主进程,挂起主进程,相当于当前...echo "进程ID: ", posix_getppid(), " 进程ID : ", posix_getpid(), " {$i} \r\n"; //我们让子进程等待3秒,再退出...pcntl_wait第二个参数可以用来设置主进程不等待子进程退出,继续执行后续代码。 3.php代码如下: <?...代码3.php与2.php效果一样,pcntl_wait()函数作用只是用来让进程等待子进程退出,默认情况下会阻塞主进程

87341

Linux之创建进程、查看进程进程状态以及进程优先级

1.演示 文件test.c 运行结果: 2.介绍 fork头文件为unistd.h fork返回值:进程会返回子进程pid,子进程返回0(一个子进程只有一个进程,但是有个进程可以有无数个子进程...,一次要将子进程pid返回给进程,而子进程不需要) 3.将子进程进程执行任务分离 根据父子进程返回值不同: 文件test.c 运行结果: 4.多进程并行 文件test.c...优先级和进程状态一样本质是是进程PCB中一个(或几个)整型数字,Linux优先级是用两个整型数表示。 3.为什么存在优先级 因为资源是有限,但是有很多进程都想申请资源。...2.查看系统进程Linux/Unix系统中,用ps -la命令可以查看进程信息。...4.修改进程优先级 在Linux中修改进程优先级是通过修改PRI和NI。也就是说,进程优先级是受到nice值影响,但是默认情况下nice值为0.

37630

Linux进程排队理解&&进程状态表述&&僵尸进程和孤儿进程理解

Linux中可能存在多个进程都要根据它状态执行后续动作。一个CPU都会维护一个运行队列,当一个进程PCB被链入到CPU运行队列中时,我们就称这个进程状态为运行状态。...而CPU运行速度是非常非常快,也就是说相对CPU而言,该进程大部分时间还是在等待外设,在等待过程中CPU就将该进程链入到外设等待队列中,所以该进程查到状态大部分都是睡眠状态,这里Linux操作系统具体实现...如果进程不读取子进程退出时退出状态,子进程PCB就不会被系统释放,子进程就会一直处于僵尸状态。...如果进程不读取,那么这个僵尸状态进程会一直存在,会引起内存泄漏,造成系统资源浪费。 为什么我们在之前进程没有见过处于Z状态呢?...那是因为以前我们创建进程进程都是bash,bash一瞬间会自动读取子进程退出状态,不需要我们手动读取。而我们自己创建进程需要我们自己读取它退出状态。

12410

Linux】静态进程和动态进程

引言 在Linux环境中,进程加载方式涉及到静态进程和动态进程两个概念。这两种方式都有各自优势和劣势,而正确选择加载方式对于应用程序性能和管理至关重要。...本文将深入探讨静态进程和动态进程特点、优劣势,并为你提供在不同场景下选择建议。 1....静态进程适用于不经常更新和部署应用,以及对独立性和部署简便性要求较高环境。 2. 动态进程 动态进程是一种加载方式,它在程序运行时依赖外部共享库(动态链接库)。...相对于静态进程,动态进程可执行文件较小,因为它只包含程序自身代码,而共享库加载则在程序启动时由动态链接器完成。...无论选择静态进程还是动态进程,了解它们特点以及在不同情况下适用性,可以帮助开发者更好地优化程序性能和管理。 结论 静态进程和动态进程各有优劣,选择合适加载方式取决于项目的具体需求。

11510

探索Linux进程状态 | 僵尸进程 | 孤儿进程

Linux进程状态 任何进程在运行时都会有自己状态 下面的状态在kernel源代码里定义: /* * The task state array is a strange "bitmap" of *...在Linux系统层面称作浅度睡眠,S称为深度睡眠。 disk是磁盘意思,好像是说针对于磁盘一种状态 有这样一个场景,操作系统中有一个进程,需要将1GB数据写入磁盘中。...Linux操作系统负责进程管理,文件系统等,整个操作系统管理系统软硬件资源,当系统中整个资源内存不足时,Linux操作系统有权杀掉进程来释放空间。...进程也是bash进程进程结束后,它进程bash会将它回收掉,并且过程很快,所以进程不会处于僵尸状态。...当进程结束后,它进程进程变成1号进程,即操作系统 将进程是1号进程进程叫做孤儿进程。 孤儿进程被1号i进程领养,当然要有进程回收喽。

9410
领券