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

linux:根据主进程查找进程

版权声明:本文为博原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接本声明。...,进程ID分别为1088,1482,1494,从左到右为父/进程关系.如果想通过netstat命令根据PID查找服务所占用的端口,就需要最右的java进程ID。...怎么样通过这个MainPID获取实际工作的进程ID呢,ps的 -g选项可以根据PID过程要显示的所有属于指定PID的进程进程,比如: $ ps --forest -o pid,cmd -g 1088...target/start_facelog_server.sh 1494 \_ java -jar facelog-service-2.4.2-standalone.jar 最后一行就是最后的进程...main_pid="$(systemctl show $service_name --property=MainPID)" main_pid=${main_pid##*=} # ps 命令获取最下层的进程

4.9K20

探索父进程进程

ifelse if同时满足,并且这两个程序都是死循环同时在运行。...也就是说明,这里有两个程序在同时运行,即myprocess.exe进程myprocess.exe进程创建的进程,从而实现了fork函数创建进程后,会从原来的一个执行流变成两个执行流。...**为什么说进程进程的代码和数据是共享的?**刚刚谈到,进程创建了属于自己的PCB对象,但是没有代码和数据,因此它只能使用父进程的代码和数据,也就是说父子进程的代码和数据是共享的。...因此fork函数之后程序执行了两次,本质上是父子进程各执行了一次。 创建进程是为了执行进程不同的任务,但是父子进程共享一套代码,因此我们需要给父子进程加一区分,以便于让他们执行不同的任务。...父进程进程也是两个进程,也具有独立性,父子进程不能访问同一份数据,数据在代码执行过程中可能会被修改。所以进程要把父进程的数据单独拷贝一份,这个过程是由操作系统来完成的。

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

进程进程谁先运行?

Linux中,父进程进程是并行运行的,先运行哪个是不确定的,在小红帽系统(Red Hat)中,先运行的是进程,在ubuntu系统中,父进程是先运行的。...其实谁先运行不重要了,一般在编程中,把父进程当做守护进程使用,用一个waitpid(pid,&status,0) != pid 等待进程的结束,父进程一直阻塞在这个函数中。...\n"); return 0; } else if (pid==0) { // 进程 printf("Child process!...Child process ID: %d\n", pid); pid_wait = waitpid(pid, &status, 0); // 等待指定进程号的进程 printf("Child...\n", pid_wait); } return 0; } 结果(Ubuntu中):父进程等待了进程结束 ? 如果喜欢我的文章,欢迎关注、点赞转发,下面可以留言~~~

3.7K30

Linux】静态进程动态进程

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

10810

Windows内核之进程的终止进程

进程也会终止了,可是它不会告诉进程内相关联的DLL这个进程将要被终止。...进程的终止状态由STILL_ACTIVE变为了进程的返回代码 这个函数是异步的,它告诉操作系统,你要终止某个进程,可是当函数返回的时候,你无法保证进程是否已经被杀死,假设想要确切知道进程是否被杀死...2 进程终止时的情况 进程中全部剩余线程将被终止 进程中指定的用户对象,GDI对象被释放,内核对象被关闭 内核对象的状态编程收到通知的状态 进程的退出代码由STILL_ACTIVE...3 进程 程序中要实现一段功能一共同拥有3种方法: 调用函数 开辟新线程 开辟新进程 3.1 调用函数 调用函数时很常见的,可是它的缺点是由于在同一个线程中...3.3 开辟进程 这样有点是既能够保护数据,能够同步运行,也能够等待新进程运行完成再去运行其它进程的代码。缺点是开辟新进程,会造成地址空间的浪费。

1.6K20

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

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

3.1K40

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

对于处理器消耗型的进程,调度策略往往是降低他们的执行频率,延长运行时间。 Linux 系统为了提升响应的速度,倾向于优先调度 I/O 消耗型。...一、普通进程Linux 中普通进程依赖称之为 nice 值 的东东来进行进程的优先级描述。nice 值的范围是 [-20, 19]。...—— 小结 实时进程优先级:value 越高,优先级越大 普通进程优先级:nice值越高,普通进程的优先级越小 任何实时进程的优先级 > 普通进程 Linux 调度算法 ---- Linux 中有一个总的调度结构...Linux 调度时机 ---- 一、进程切换 从进程的角度看,CPU是共享资源,由所有的进程按特定的策略轮番使用。...进程切换分为自愿切换(Voluntary)强制切换(Involuntary),以上场景1属于自愿切换,场景23属于强制切换。

20.5K10

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

前言 上一篇博客中提到 【Linux进程初步理解,这次继续来分享与进程有关的知识。 2. Linux进程状态 Linux进程状态就是struct task_struct内部的一个属性。...让进程自己醒来;2. 重启–断点 3. 僵尸进程孤儿进程 3.1 僵尸进程 Linux中一个进程的退出,它会将自己的退出信息保留在自己的PCB中。...,进程就会变成孤儿进程, 而孤儿进程一般会被1号进程(OS本身)进行领养。...因为直接在命令行中启动的进程,它的父进程是bash,bash会自动回收新进程的Z。 4. 进程的阻塞、挂起运行 在网上找的一张进程状态图: 终止状态就等价于Z状态X状态。...阻塞运行的状态变化,往往伴随进程PCB被连入到不同的队列中。

20410

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

假设是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.5K30

Linux 进程管理之调度进程切换

按照某种调度算法,从进程的ready队列中选择进程给CPU。 为什么要调度?为了最大限度的利用CPU。 调度相关结构体 task_struct ?...以 scheduler_tick wake_up_process 为例: ? 关于是否需要设置TIF_NEED_RESCHED的依据涉及到具体的调度算法,等我们讲到具体调度器时再详细讲。 2....抢占可分为内核态抢占用户态抢占 用户态抢占 ret_to_user是系统调用,异常触发,中断处理完成后都会调用的函数。 ? 内核态抢占 ?...关于选择task的策略涉及到不同的调度类,等我们讲到具体调度器的时候再展开,这里重点讲下上下文切换的函数 context_switch,进程上下文切换主要涉及到两部分主要过程:进程地址空间切换处理器状态切换...完成了这一步,也就完成了进程的地址空间切换,确切的说是进程的虚拟地址空间切换。 寄存器状态切换 ?

1.8K20

Linux内核编程--进程守护进程

fork创建的进程进程在同一个进程组中,进程组的Leader必然是该组的第一个进程,所以进程不可能是该组的第一个进程,在进程中调用setsid就不会有问题了。...守护进程的特点: 无需控制终端 运行在后台 一般随操作系统启动关闭 守护进程运行在后台,但是后台进程有一定区别: (1)守护进程终端不挂钩,不向终端输出内容(信息),但后台进程是能向终端输出内容的...该函数返回时,父进程实际上是上一次调用fork产生的进程。然后这个父进程被终止,留下新的进程继续运行。...忽略SIGHUP信号的原因:当头部进程(第一次fork产生的进程)终止时,其会话中的所有进程(再次fork产生的进程)都会收到SIGHUP信号。...查询被进程ID对应的进程打开的文件:lsof -p 1000 查看进程内存情况:pmap PID 样例: 参考阅读: 《UNIX环境高级编程第3版》 《Linux C++ 通信架构实战》 《UNIX

2.9K20

python多进程进程进程间共享不共享全局变量实例

Python 多进程默认不能共享全局变量 主进程进程是并发执行的,进程之间默认是不能共享全局变量的(进程不能改变主进程中全局变量的值)。...import multiprocessing import time import os datalist=['+++'] #全局变量,主进程进程是并发执行的,他们不能共享全局变量(进程不能改变主进程中全局变量的值...d表示数值,主进程进程共享这个value。...#进程改变数组,主进程跟着改变 if __name__=="__main__": num=multiprocessing.Array("i",[1,2,3,4,5]) #主进程进程共享这个数组...主进程进程间共享不共享全局变量实例就是小编分享给大家的全部内容了,希望能给大家一个参考。

4.5K20

C语言Linux系统编程-等待终止的进程(僵死进程

1.等待终止的进程(僵死进程): 如果一个进程在父进程之前结束,内核会把子进程设置为一个特殊的状态,处于这种状态的进程称为僵死进程 当父进程获取了进程的信息后,进程才会消失。...pid_t wait(int *status); 父进程调用这个方法会被阻塞住,如果子进程终止的时候,此方法会调用并且返回终止进程的pid #include #include <unistd.h...sleep(2); pid=getpid(); ppid=getppid(); printf("我是进程...,pid=22315 , ppid=12479 ,我新建的进程pid=22316 我是进程,pid=22316 , ppid=22315 我的进程,pid=22316,终止了 2.如果父进程进程之前终止了...,那么系统会把子进程设置给init进程(pid为1),init进程会周期性的等待所有的进程,确保没有长时间的僵死进程

3.4K20
领券