linux进程退出

简介: linux进程退出

正常退出

1.Main函数调用return


2.进程调用exit()标准c库


3 .进程用 exit0或者 Exit0,属于系统调用

4.进程最后一个线程返回

5.最后一个线程调用pthread_exit


异常退出

1.调用abort

2.当进程收到某些信号时,如ctrl+C


3.最后一个线程对取消 (cancellation) 请求做出响应


不管进程如何终止,最后都会执行内核中的同一段代码。这段代码为相应进程关闭所有打

开描述符,释放它所使用的存储器等。对上述任意一种终止情形、我们都希望终止进程能够通知其父进程它是如何终止的。对于三个终止函数 (exit、_exit和_Exit),实现这一点的方法是,将其退出状态 (exit status)作为参数传送给函数。在异常终止情况下,内核(不是进程本身)产生一个指示其异常终止原因的终止状态(termination status)。在任意一种情况下,该终止进程的父进程都能用wait或waitpid函数取得其终止状态


示例代码:

#include <stdio.h>
#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>
#include <stdlib.h>
 
 
int main()
{
    pid_t pid;
 
    int cnt = 0;
    
    pid = fork();
        
    if(pid > 0)
    {
 
        wait(NULL);
        while(1){
            printf("cnt=%d\n",cnt);
            printf("this is father print, pid = %d\n",getpid());
            sleep(1);
        }    
    }
    
    else if(pid == 0){
        
        while(1){
            printf("this is chilid print, pid = %d\n",getpid());
            sleep(1);
            cnt++;
            if(cnt == 5){
                exit(0);
            }
        }    
    }
 
    return 0;
}
相关文章
|
28天前
|
运维 关系型数据库 MySQL
掌握taskset:优化你的Linux进程,提升系统性能
在多核处理器成为现代计算标准的今天,运维人员和性能调优人员面临着如何有效利用这些处理能力的挑战。优化进程运行的位置不仅可以提高性能,还能更好地管理和分配系统资源。 其中,taskset命令是一个强大的工具,它允许管理员将进程绑定到特定的CPU核心,减少上下文切换的开销,从而提升整体效率。
掌握taskset:优化你的Linux进程,提升系统性能
|
23天前
|
弹性计算 Linux 区块链
Linux系统CPU异常占用(minerd 、tplink等挖矿进程)
Linux系统CPU异常占用(minerd 、tplink等挖矿进程)
30 4
Linux系统CPU异常占用(minerd 、tplink等挖矿进程)
|
4天前
|
Linux 调度
Linux源码阅读笔记05-进程优先级与调度策略-实战分析
Linux源码阅读笔记05-进程优先级与调度策略-实战分析
|
23天前
|
缓存 监控 Linux
入职必会-开发环境搭建40-Linux常用操作-Linux进程管理
进程是正在执行的程序或命令。每个进程独立的,都有需要占用一定的系统资源。Linux系统中启动进程有两种方式:1.Linux操作系统启动的时自动启动的进程。2.用户在终端输入命令启动的进程。
入职必会-开发环境搭建40-Linux常用操作-Linux进程管理
|
4天前
|
Linux API C语言
Linux源码阅读笔记02-进程原理及系统调用
Linux源码阅读笔记02-进程原理及系统调用
|
7天前
|
Linux Shell 调度
【在Linux世界中追寻伟大的One Piece】Linux进程概念
【在Linux世界中追寻伟大的One Piece】Linux进程概念
16 1
|
5天前
|
Linux
Linux 查找进程所在目录
Linux 查找进程所在目录
17 0
|
7天前
|
缓存 Linux Shell
【在Linux世界中追寻伟大的One Piece】Linux进程控制
【在Linux世界中追寻伟大的One Piece】Linux进程控制
15 0
|
1月前
|
Linux
Linux —— 进程间通信
Linux —— 进程间通信
28 1
|
15天前
|
监控 Linux Shell
探索Linux操作系统下的进程管理
【8月更文挑战第4天】本文深入探讨了在Linux操作系统下进行进程管理的方法与技巧,通过实例分析展示了如何利用系统命令和脚本来监控、控制进程。文中不仅介绍了基础的进程查看、启动、终止操作,还详细解释了如何通过信号机制处理进程间的通信,以及如何编写自动化脚本以优化日常管理任务。文章旨在为系统管理员和开发人员提供实用的进程管理知识,帮助他们更高效地维护Linux系统。