首页
学习
活动
专区
工具
TVP
发布

Linux0进程,1进程,2进程

本节我们将从linux启动的第一个进程说起,以及后面第一个进程如何启动1进程,然后启动2进程。...0进程linux启动的第一个进程,它的task_struct的comm字段为"swapper",所以也成为swpper进程。...至此1进程就完美的创建成功了,而且也成功执行了init可执行文件。 2进程 2进程由1进程创建的。而且2进程所有内核线程父进程。...所以说所有的内核线程的父进程都是2进程,也就是kthreadd。 总结: linux启动的第一个进程0进程静态创建的 在0进程启动后会接连创建两个进程,分别是1进程和2和进程。...2进程会在内核中负责创建所有的内核线程 所以说0进程1和2进程的父进程;1进程所有用户态进程的父进程;2进程所有内核线程的父进程。 我们通过ps命令就可以详细的观察到这一现象。

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

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

Linux 内核使用 task_struct 数据结构来关联所有与进程有关的数据和结构,Linux 内核所有涉及到进程和程序的所有算法都是围绕该数据结构建立的,内核中最重要的数据结构之一。... Linux 中在其命名空间中唯一标识进程而分配给它的一个号码,称做进程ID,简称PID。...内核如何设计task_struct中进程ID相关数据结构的 Linux 内核在设计管理ID的数据结构时,要充分考虑以下因素: 如何快速地根据进程的 task_struct、ID类型、命名空间找到局部ID...根据PID查找进程task_struct 根据PID(nr值)取得task_struct 结构体 根据PID以及其类型(即为局部ID和命名空间)获取task_struct结构体 如果根据的进程的ID...,我们可以先通过ID(nr值)获取到进程struct pid实体(局部ID),然后根据局部ID、以及命名空间,获得进程的task_struct结构体 可以使用pid_task根据pid和pid_type

5.7K10

linux下杀死某个进程_shell脚本获取进程并杀死进程

大家好,又见面了,我你们的朋友全栈君。 在做项目的时候经常会出现程序死机、锁死、无响应等情况,这时候就需要找到程序相应的进程将其杀掉即可。...步骤如下: 1.定位进程 top命令:可以实时动态地查看系统的整体运行情况,一个综合了多方信息监测系统性能和运行信息的实用工具。通过top命令所提供的互动式界面,用热键可以管理。...python相关的进程 第一行数据解释(从左到右): “ubuntu”用户;“14992”PID;“0.0”%CPU-占用CPU的百分比;“0.4”%MEM-占用内存的百分比; PID就是我们要的...结束命令: kill:通过进程ID来结束进程 killall:通过进程名字结束进程 最长使用的结束进程的信号: Signal Name Single Value Effect SIGHUP 1 挂起...所以我们现在来杀死python进程: kill SIGNAL PID SIGNAL 要发送的信号,PID进程。 kill -9 14992 上面的命令就是杀死python进程的。

4.9K20

如何判断进程哪个容器中运行的?

在某些情况下,可能在宿主机上存在“看得到却摸不到”的进程;有的时候容器太多,想知道进程具体哪个容器运行的?...我们来尝试下: 首先在容器中的test目录下运行sleep 10000 在宿主机ps能看到对应的进程 看对应的proc下的cwd,也确实和容器中的路径一样,在/test目录下,但是宿主机实际上并没有这个路径...大概率可以判断这个进程不是在宿主机上的,可以通过如下这个命令判断命令是否在容器中执行的: ps -e -o pid,cmd,comm,cgroup 可以看到pid为29656的cgroup在docker...docker-xxxx,xxxx就是docker的id,也就是: bf85501b3084601ba76b8cb303917134d58b5e7783c14c1636ff1c56a3d83c1f 或者cat对应的进程...cgroup也可以: cat /proc/xxxx/cgroup 和我们执行的sleep命令的容器一致: 因此可以得出结论,pid为29656的进程在 bf85501b3084601ba76b8cb303917134d58b5e7783c14c1636ff1c56a3d83c1f

4.3K30

Linux下2进程的kthreadd--Linux进程的管理与调度(七)

2进程 内核初始化rest_init函数中,由进程 0 (swapper 进程)创建了两个process init 进程 (pid = 1, ppid = 0) kthreadd (pid = 2,...2进程的创建 在rest_init函数中创建2进程的代码如下 pid = kernel_thread(kthreadd, NULL, CLONE_FS | CLONE_FILES); rcu_read_lock...kthreadd_task = find_task_by_pid_ns(pid, &init_pid_ns); rcu_read_unlock(); complete(&kthreadd_done); 2进程的事件循环...kthread_create_lock); } spin_unlock(&kthread_create_lock); } return 0; } kthreadd的核心一...在for循环中,如果发现kthread_create_list一空链表,则调用schedule调度函数,因为此前已经将该进程的状态设置为TASK_INTERRUPTIBLE,所以schedule的调用将会使当前进程进入睡眠

2.2K20

Linux下0进程的前世(init_task进程)今生(idle进程)----Linux进程的管理与调度(五)【转】

系统中所有其它用户进程的祖先进程 Linux中的所有进程都是有init进程创建并运行的。首先Linux内核启动,然后在用户空间中启动init进程,再启动其他系统进程。.../linux/init_task.h文件中 init_taskLinux内核中的第一个线程,它贯穿于整个Linux系统的初始化过程中,该进程也是Linux系统中唯一一个没有用kernel_thread...调用schedule()函数切换当前进程,在调用该函数之前,Linux系统中只有两个进程,即0进程init_task和1进程kernel_init,其中kernel_init进程也是刚刚被创建的。...,在调用该函数之前,Linux系统中只有两个进程,即0进程init_task和1进程kernel_init,其中kernel_init进程也是刚刚被创建的。...树根系统自动构造的(或者说是由内核黑客手动创建的),即在内核态下执行的0进程,它是所有进程的远古先祖。

4.4K30

Linux进程控制:理解什么进程创建,进程终止,进程等待 | 进程替换

答案进程。子进程在退出时,会成为僵尸进程,需要父进程的回收。 那么父进程期望获得子进程退出时得哪些信息呢?...答案不可以!因为进程之间具有独立性。...单进程进程替换 在理解什么进程替换之前,我们先来看看进程替换怎么使用,下面操作系统提供的进程替换的一些函数 这些函数如果调用成功则加载新的程序从启动代码开始执行,不再返回。...多进程进程替换  前面的例子进程的执行系统命令的进程替换,接下来我们实现一个多进程的执行自己命令的进程替换。...因为在linux中,环境变量的内容在一个区域放着的,而环境变量表 env 中存的环境变量的地址,这些地址指向所对应的环境变量;         而我们putenv一个环境变量时,其实是在环境变量表中找一个未使用的下标

16010

Linux下1进程的前世(kernel_init)今生(init进程)----Linux进程的管理与调度(六)

前面我们了解到了0进程系统所有进程的先祖, 它的进程描述符init_task内核静态创建的, 而它在进行初始化的时候, 通过kernel_thread的方式创建了两个内核线程,分别是kernel_init...init进程 随后,1进程调用do_execve运行可执行程序init,并演变成用户态1进程,即init进程。 init进程linux内核启动的第一个用户级进程。...,这几个位置以前常用来放置init,但是init的最适当的位置(在Linux系统上)/sbin/init。...已经风行了几十年的 UNIX init 系统,一直被各类 Linux 发行版所采用。...systemd Systemd Linux 系统中最新的初始化系统(init),它主要的设计目标克服 sysvinit 固有的缺点,提高系统的启动速度 浅析 Linux 初始化 init 系统(

3.6K11

Linux中查看端口被哪个进程占用、进程调用的配置文件、目录等

1.查看被占用的端口的进程,netstat/ss -antulp | grep :端口号 2.通过上面的命令就可以列出,这个端口被哪些应用程序所占用,然后找到对应的进程PID 3.根据PID查询进程...如果想详细查看这个进程,PID具体哪一个进程,可以通过命令的方式进行查看进程的详细信息,ps -ef | grep 进程PID 或者ps -aux | grep 进程PID 通过执行上面的命令,...就可以看到这个进程的详细信息,同时也可以看到这个进程存在的目录,进程执行的文件、配置文件等信息。...4.查看进程所在目录。...通过ll /proc/进程PID/cwd命令,可以直接查看进程所在的目录,这样的话就可以快速定位到进程的目录 查找他的进程目录之后,就可以对这个应用程序进行一系列的操作,比如说重启删除等!

1.7K20

linux根据进程PID查找启动程序的全路径

工作环境中遇到网络不正常,检测某服务器异常往外发送数据包,使用netstat命令查看,发现有程序.IptabLex的这个进程状态为异常连接.无法有效清除,因此想知道哪个目录的此程序处于僵死状态....出问题时进程的状态为: [root@edu-web1 /] ps x ?...找到某进程启动路径的方法: 1.我们可以从ps命令中得到僵死进程的PID,如上例中23347 2.进入/proc目录下以该PID命名的目录中 3.输入ls -ail,结果中 exe链接对应的就是可执行文件的全路经详细信息...可以发现此连接有异常,对应的应用也有问题,剩下的就是想办法删除此僵尸进程对应的应用程序了,一般都是冗余或垃圾程序,可rm -f 干掉…… 总结 以上所述小编给大家介绍的linux根据进程PID查找启动程序的全路径

9.3K31

通过会话查看进程

我们在日常Oracle维护中,可能有的遇到一个会话处于假死状态或者通过常规命令无法杀死,这时需要直接通过操作系统kill命令来杀死进程,这节就讲述如何通过SID来获取操作系统的进程。...注意:该功能只支持同时查一个进程,无论会话是否ACTIVE ---- 开发环境 操作系统:CentOS 7.3 Python版本 :2.7 Django版本: 1.10.5 操作系统用户:oracle...再判断命令内容,如果check_session_process 4. 则首先获取SID 5. 在执行函数getprocessno通过SID获取对应的进程,详情看具体代码 6....最后把页面的标题以及表格的数据放到dic变量中传到 oracle_command_result_1.html模板文件中 ---- getprocessno函数 这里的getprocessno函数通过SID获取操作系统进程... {{title}}{{row}} 该模板就是一行文字,通过将传过来的变量显示在前端页面 ---- 实际效果 该功能只支持同时查一个进程

2K20
领券