首页 系统教程 操作系统 Linux 下结束进程的方法:正常与异常终止详解

Linux 下结束进程的方法:正常与异常终止详解

Jul 18, 2024 pm 10:11 PM

Linux 下结束进程的方法:正常与异常终止详解

在前两章中我们了解了创建进程,这一章我们来了解下,在linux下如何结束进程。

在linux中,有3种正常结束进程的方式和2种异常中止的方式:

1、正常结束:

a、在main函数中调用return。这个相当于调用exit。

b、调用exit函数,按这个函数在ANSIC中的定义,调用时将执行所有注册过的exit句柄,关掉所有的标准I/O流,而且并不处理文件描述符、多进程(父进程与子进程)、作业等,因此对linux系统而言并不健全。

c、调用_exit函数。exit被_exit调用linux培训,关掉一些linux特有的退出句柄。

2、异常中止

linux保存退出命令行_linux退出保存文件_linux下退出不保存

a、调用abort。这个似乎是第二种情形的特例,由于它形成一个SIGABRT讯号。

b、进程收到特定讯号,这个讯号可以是进程自己形成的(如abort函数),也可以来自其他进程或内核。诸如:进程试图访问越界的显存地址或则除数为零时linux模拟,内核就会形成讯号中断进程。

不管用何种方法结束进程,最终都要执行内核的同一段代码。这段代码关掉该进程打开的所有文件描述符,私访占用的显存等。

接出来我们来了解下exit和_exit函数

这两个函数在不同的头文件中:exit在stdlib.h中,_exit在unistd.h中

linux退出保存文件_linux下退出不保存_linux保存退出命令行

她们的具体调用方式如下:

voidexit(int__status)

void_exit(int__status)

参数status为退出的状态。

我们来看一下下边这两段代码:

linux保存退出命令行_linux下退出不保存_linux退出保存文件

图1

linux下退出不保存_linux退出保存文件_linux保存退出命令行

图2

linux退出保存文件_linux保存退出命令行_linux下退出不保存

linux保存退出命令行_linux下退出不保存_linux退出保存文件

图3

linux保存退出命令行_linux退出保存文件_linux下退出不保存

图4

图1的代码缺乏了n造成了没有复印出测试结束的句子,这是由于printf若果不加n,则信息是不会立即复印下来的,而_exit不会强制输出缓冲区中的数据,即通过printf/fprintf这类调用形成的仍未写入设备仍在缓冲中的数据就会遗弃,_exit时复印信息会遗失,而exit不会。假如有n,则直接复印下来,此时exit/_exit无区别

兄妹进程中止的先后次序不同会形成不同的结果

1.父进程先于子进程中止:

此种情况就是我们所说的孤儿进程。当父进程先退出时,系统会让init进程接管子进程。

2.子进程先于父进程中止,而父进程又没有调用wait函数

此种情况子进程步入僵死状态,而且会始终保持下去直至系统重启。子进程处于僵死状态时linux下退出不保存,内核只保存进程的一些必要信息以备父进程所需。此时子进程仍然占有着资源,同时也降低了系统可以创建的最大进程数。

哪些是僵死状态呢?

一个早已中止、但是其父进程仍未对其进行善后处理(获取中止子进程的有关信息,释放它仍占有的资源)的进程被称为僵死进程(zombie)。

3.子进程先于父进程中止linux下退出不保存,而父进程调用了wait函数

此时父进程会等待子进程结束。

以上是Linux 下结束进程的方法:正常与异常终止详解的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

<🎜>:泡泡胶模拟器无穷大 - 如何获取和使用皇家钥匙
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系统,解释
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆树的耳语 - 如何解锁抓钩
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

热门话题

Java教程
1671
14
CakePHP 教程
1428
52
Laravel 教程
1331
25
PHP教程
1276
29
C# 教程
1256
24
互联网在Linux上运行吗? 互联网在Linux上运行吗? Apr 14, 2025 am 12:03 AM

互联网运行不依赖单一操作系统,但Linux在其中扮演重要角色。Linux广泛应用于服务器和网络设备,因其稳定性、安全性和可扩展性受欢迎。

Linux管理员的薪水是多少? Linux管理员的薪水是多少? Apr 17, 2025 am 12:24 AM

Linux管理员的平均年薪在美国为75,000至95,000美元,欧洲为40,000至60,000欧元。提升薪资可以通过:1.持续学习新技术,如云计算和容器技术;2.积累项目经验并建立Portfolio;3.建立职业网络,拓展人脉。

Linux系统管理员的主要任务是什么? Linux系统管理员的主要任务是什么? Apr 19, 2025 am 12:23 AM

Linux系统管理员的主要任务包括系统监控与性能调优、用户管理、软件包管理、安全管理与备份、故障排查与解决、性能优化与最佳实践。1.使用top、htop等工具监控系统性能,并进行调优。2.通过useradd等命令管理用户账户和权限。3.利用apt、yum管理软件包,确保系统更新和安全。4.配置防火墙、监控日志、进行数据备份以确保系统安全。5.通过日志分析和工具使用进行故障排查和解决。6.优化内核参数和应用配置,遵循最佳实践提升系统性能和稳定性。

Linux的主要目的是什么? Linux的主要目的是什么? Apr 16, 2025 am 12:19 AM

Linux的主要用途包括:1.服务器操作系统,2.嵌入式系统,3.桌面操作系统,4.开发和测试环境。Linux在这些领域表现出色,提供了稳定性、安全性和高效的开发工具。

Linux和Windows之间虚拟化支持有哪些差异? Linux和Windows之间虚拟化支持有哪些差异? Apr 22, 2025 pm 06:09 PM

Linux和Windows在虚拟化支持上的主要区别在于:1)Linux提供KVM和Xen,性能和灵活性突出,适合高定制环境;2)Windows通过Hyper-V支持虚拟化,界面友好,与Microsoft生态系统紧密集成,适合依赖Microsoft软件的企业。

很难学习Linux吗? 很难学习Linux吗? Apr 18, 2025 am 12:23 AM

学习Linux并不难。1.Linux是一个开源操作系统,基于Unix,广泛应用于服务器、嵌入式系统和个人电脑。2.理解文件系统和权限管理是关键,文件系统是层次化的,权限包括读、写和执行。3.包管理系统如apt和dnf使得软件管理方便。4.进程管理通过ps和top命令实现。5.从基本命令如mkdir、cd、touch和nano开始学习,再尝试高级用法如shell脚本和文本处理。6.常见错误如权限问题可以通过sudo和chmod解决。7.性能优化建议包括使用htop监控资源、清理不必要文件和使用sy

Linux软件的未来:Flatpak和Snap会替换本机桌面应用程序吗? Linux软件的未来:Flatpak和Snap会替换本机桌面应用程序吗? Apr 25, 2025 am 09:10 AM

多年来,Linux软件分布依赖于DEB和RPM等本地格式,并深深地根深蒂固。 但是,Flatpak和Snap已经出现,有望成为应用程序包装的通用方法。 本文考试

在Linux中比较文件的前7个工具(示例) 在Linux中比较文件的前7个工具(示例) Apr 28, 2025 am 09:21 AM

本指南探讨了用于比较Linux中文本文件的各种方法,Linux是系统管理员和开发人员的关键任务。 我们将介绍命令行工具和视觉差异工具,突出显示其优势和适当的用例。 假设

See all articles