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

linux全局和个人配置文件说明

1.bash配置文件:1)、全局(bash的配置文件)有 /etc/profile /etc/profile.d/* 与 /etc/bashrc其实都是bash这个程序启动的时候会读取配置信息的....无论现在什么样的应用程序,大多数都需要用配置文件来保存用户可以进行的设定的2)、用户个人:~/.bash_profile 和 ~/.bashrc 我们对bash所做的任何设定,都可以将这些修改写入到这些文件中...,但是这些文件还略有不同,并不是每一次bash的执行都会读取每一个bash配置文件的,这要取决于用户启动bash的启动方式(用户登陆,执行脚本)2. bash启动运行模式:(交互和非交互模式)1.)...> /etc/bashrc --> /etc/profile.d/*(最后一个不读)其他文件将不再读取.配置文件有的是profile类文件,有些是bashrc类文件.profile...运行命令或脚本 用户登陆之前就运行一些命令或者脚本的话,就写在这里,bash登陆之前就进行的准备类工作/etc/profile 对全局生效~/.bash_profile 仅对该用户生效

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

Linux信号信号产生&&信号处理&&信号保存&&信号详解

进程异常终止通常是因为有Bug,比如非法内存访问导致段错误,事后可以用调试器检查core文件以查清错误原因,这叫做Post-mortem Debug(事后调试) 一个进程允许产生多大的core文件取决于进程的...默认是不允许产生core文件的,因为core文件中可能包含用户密码等敏感信息,不安全。在开发调试阶段可以用ulimit命令改变这个限制,允许产生core文件。...使用core文件 2.2 调用系统函数向进程发信号 首先在后台执行死循环程序,然后用kill命令给它发SIGSEGV信号 4568是test进程的id。...Linux是这样实现的:常规信号在递达之前产生多次只计一次,而实时信号在递达之前产生多次可以依次放在一个队列里 3.3 sigset_t 从上图来看,每个信号只有一个bit的未决标志,非0即1,不记录该信号产生了多少次...此方法对于Linux可用,但不保证在其它UNIX系统上都可用 测试代码 #include #include #include #include

12210

Linux信号

一.信号基础 生活中 在生活中也有诸多信号,这些信号通常不是由我们发起的,而是我们接收以后对对应的信号做处理;最常见的莫过于红绿灯了,当红绿灯发出信号时(红灯,绿灯,黄灯);我们会有对应的行为,比如绿灯我们知道当前可以行走...对信号产生以后我们知道该做什么,这是因为我们曾经接受了对于这些信号的教育,知道当这些信号产生以后我们需要做什么。...使用kill -l可以查看全部的信号 其中1-31为普通信号,34-64被称为实时信号 进程PCB中有一个位图结构用于标明该进程是否收到信号(32个比特位使用0/1来区分是否收到信号,0代表没收到...进程对于信号的处理有三种:1.默认,2.忽略,3.自定义; 但并不是进程一收到信号就马上处理,因为信号是随时产生的(异步),可能当信号来临时进程正在处理着更重要的事情,进程对信号的处理会在合适的时机(内核态返回用户态时...不过大部分云服务器都是默认关闭了该功能,可以使用ulimit -a来查看核心转储是否被打开 使用ulimit -c+大小可以打开核心转储并设置大小 核心转储的意义就是为了方便调试,当程序异常终止的时候会产生一个文件

19730

Linux进程信号信号产生】

---- 前言 在 Linux 中,进程具有独立性,进程在运行后可能 “放飞自我”,这是不利于管理的,于是需要一种约定俗成的方式来控制进程的运行,这就是 进程信号,本文将会从什么是进程信号开篇,讲述各种进程信号的产生方式及作用...,部分信号只做了解即可 1.2、信号的作用 早在 《Linux进程学习【进程状态】》 我们就已经使用过 信号 了,比如: kill -9 pid 终止进程运行 kill -19 pid 暂停进程运行 kill...可以通过 man 7 signal 进行查询 man 7 signal 简单总结一下,1~31 号信号对应的功能如下(表格内容引用自 2021dragon Linux中的31个普通信号信号编号 信号名...,立即终止进程 到目前为止,我们学习了很多信号,分别对应着不同的情况,其中有些信号还反映了异常信息,所以将信号进行细分,还是很有必要的 ---- 6、核心转储 Linux 中提供了一种系统级别的能力,当一个进程在出现异常的时候...,而是设置 core dump 位 及 终止信号 也就是说,父进程可以借此判断子进程是否产生了 核心转储 文件 ---- 总结 以上就是本次关于 Linux进程信号信号产生】的全部内容了,作为进程信号系列的开篇之作

26710

Linux进程信号信号保存】

---- 前言 信号从产生到执行,并不会被立即处理,这就意味着需要一种 “方式” 记录信号是否产生,对于 31 个普通信号来说,一个 int 整型就足以表示所有普通信号的产生信息了;信号还有可能被 “阻塞...的相关概念 1.1、概念 信号 传递过程:信号产生 -> 信号未决 -> 信号递达 信号产生(Produce):由四种不同的方式发出信号 信号未决(Pending):信号从 产生 到 执行 的中间状态...信号递达(Delivery):进程收到信号后,对信号的处理动作 在这三种过程之前,均有可能出现 信号阻塞 的情况 信号阻塞(Block):使信号传递 “停滞”,无论是否产生,都无法进行处理 信号递达后的三种处理方式...,本文探讨的是 信号保存阶段,即 物流信息 1.3、在内核中的表示 对于传递中的信号来说,需要存在三种状态表达: 信号是否阻塞 信号是否未决 信号递达时的执行动作 在内核中,每个进程都需要维护这三张与信号状态有关的表...---- 总结 以上就是本次关于 Linux进程信号信号保存】的全部内容了,在本文中,我们首先再一次对信号有了较深的理解,知道了在内核中存在三张表记录信号的处理流程,然后我们学习了信号集的操作函数,

18720

Linux 信号

signal 信号是 UNIX 系统最先开始使用的进程间通信机制,因为 Linux 是继承于 UNIX 的,所以 Linux 也支持信号机制,通过向一个或多个进程发送 异步事件信号 来实现,信号可以从键盘或者访问不存在的位置等地方产生...SIGUP 当 SIGUP 信号控制的终端关闭时,会发送给进程。许多守护程序将重新加载其配置文件并重新打开其日志文件,而不是在收到此信号时退出。...SIGPIPE SIGPIPE 尝试写入进程管道时发现管道未连接无法写入时发送到进程 SIGPOLL 当在明确监视的文件描述符上发生事件时,将发送 SIGPOLL 信号。...SIGXCPU 当 SIGXCPU 信号耗尽 CPU 的时间超过某个用户可设置的预定值时,将其发送到进程 SIGXFSZ 当 SIGXFSZ 信号增长超过最大允许大小的文件时,该信号将发送到该进程。...不过可以捕获这个信号,比如wget能捕获SIGHUP信号,并忽略它,这样就算退出了Linux登录,wget也 能继续下载。 此外,对于与终端脱离关系的守护进程,这个信号用于通知它重新读取配置文件

4.7K20

Linux进程信号信号处理】

---- 前言 从信号产生到信号保存,中间经历了很多,当操作系统准备对信号进行处理时,还需要判断时机是否 “合适”,在绝大多数情况下,只有在 “合适” 的时机才能处理信号,即调用信号的执行动作。...信号没有被阻塞,直接产生,记录未决信息后,再进行处理 在这种情况下,信号是不会被立即递达的,也就无法立即处理,需要等待合适的时机 特殊情况 当信号被 阻塞 后,信号 产生 时,记录未决信息,此时信号被阻塞了...与真实的地址空间建立映射关系 每个进程都有自己的 进程地址空间,不同 进程地址空间 中地址可能冲突,但实际上地址是独立的 进程地址空间 可以让进程以统一的视角看待自己的代码和数据 关于 进程地址空间 的相关知识详见 《Linux...处理 过程 图片来源:Linux进程信号 ---- 3、信号的捕捉 接下来谈谈 信号 是如何被 捕捉 的 3.1、内核如何实现信号的捕捉?...表,信号在产生之后,存储在 pending 表中 信号处理阶段:信号在 内核态 切换回 用户态 时,才会被处理 ---- 总结 以上就是本次关于 Linux进程信号信号处理】的全部内容了,本文对信号的处理时机做了探讨

20710

Linux信号基础

Linux进程基础一文中已经提到,Linux以进程为单位来执行程序。我们可以将计算机看作一个大楼,内核(kernel)是大楼的管理员,进程是大楼的房客。...如果有信号,进程会执行对应该信号的操作(signal action, 也叫做信号处理signal disposition),此时叫做执行(deliver)信号。...从信号的生成到信号的传递的时间,信号处于等待(pending)状态(纸条还没有被查看)。...常见信号 信号所传递的每一个整数都被赋予了特殊的意义,并有一个信号名对应该整数。常见的信号有SIGINT, SIGQUIT, SIGCONT, SIGTSTP, SIGALRM等。这些都是信号的名字。...特别是获取信号的情况,程序往往会设置一些比较长而复杂的操作(通常将这些操作放到一个函数中)。 信号常常被用于系统管理,所以它的内容相当庞杂。深入了解信号,需要一定的Linux环境编程知识。

2.5K50

Linux】进程信号

---- 二、进程信号 通过生活信号联系到进程信号 信号是给进程发的,比如我们之前使用过的指令:kill -9 pid 而进程又是如何识别信号的?...保存是否收到了指定的信号信号:用比特位的位置代表信号的编号,比特位的内容代表是否收到该信号,0表示没有,1表示有 如何理解信号的发送?发送信号的本质就是修改PCB中的信号位图。...,对于2号和3号信号处理动作默认为终止进程 2.系统调用 除了键盘向前台进程发送信号之外,前台进程会影响shell,linux规定跟shell交互的时候只允许有一个前台进程,默认情况下bash也是一个进程...不可重入函数: 调用了malloc或free,因为malloc也是用全局链表来管理堆的。 调用了标准I/O库 函数。标准I/O库的汗多实现都以不可重入的方式使用全局数据结构。...---- 十、关键字volatile 对代码进行优化后(-03),通过信号自定义方法handler修改全局q,但是程序不会退出。

17510

Linux信号处理

外部信号:终端 Ctrl-C 产生 SGINT 信号,定时器到期产生SIGALRM等。 显式请求:kill函数允许进程发送任何信号给其他进程或进程组。 目前 Linux 支持64种信号。...信号分为非实时信号(不可靠信号)和实时信号(可靠信号)两种类型,对应于 Linux信号值为 1-31 和 34-64。 信号是异步的,一个进程不必通过任何操作来等待信号的到达。...信号实现原理 接下来我们分析一下Linux信号处理机制的实现原理。...为了尽快让信号得到处理,Linux信号处理过程放置在进程从内核态返回到用户态前,也就是在 ret_from_sys_call 处: // arch/i386/kernel/entry.S ENTRY...dump 文件,并且通过调用 do_exit() 函数退出进程。

5.8K40

Linux 信号(Signal)

很多人经常把它们搞混,这篇文章会让你了解 Linux信号机制,以及一些常见信号的作用。 什么是信号 信号(Signal)是 Linux 进程收到的一个通知。...当进程收到一个信号时,该进程会中断其执行,并执行收到信号对应的处理程序。 信号机制作为 Linux 进程间通信的一种方法。Linux 进程间通信常用的方法还有管道、消息、共享内存等。...信号处理 一旦有信号产生,进程对它的处理都有下面三个选择。 执行缺省操作(Default)。Linux 为每个信号都定义了一个缺省的行为。...例如,信号 SIGKILL 的缺省操作是 Term,也就是终止进程的意思。信号 SIGQUIT 的缺省操作是 Core,即终止进程后,通过 Core Dump 将当前进程的运行状态保存在文件里面。...我们可以使用 coredumpctl 命令行工具查询和处理 core dump 文件

83710

Linux信号列表

我们运行如下命令,可看到Linux支持的信号列表: ~$ kill -l 1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP 6) SIGABRT 7...当用户退出Linux登录时,前台进程组和后台有对终端输出的进程将会收到SIGHUP信号。这个信号的默认操作为终止进程,因此前台进 程组和后台有终端输出的进程就会中止。...不过可以捕获这个信号,比如wget能捕获SIGHUP信号,并忽略它,这样就算退出了Linux登录,wget也 能继续下载。 此外,对于与终端脱离关系的守护进程,这个信号用于通知它重新读取配置文件。...进程在因收到SIGQUIT退出时会产生core文件, 在这个意义上类似于一个程序错误信号。 4) SIGILL 执行了非法指令. 通常是因为可执行文件本身出现错误, 或者试图执行数据段....25) SIGXFSZ 当进程企图扩大文件以至于超过文件大小资源限制。 26) SIGVTALRM 虚拟时钟信号.

3K40

Linux——进程信号

Linux下有一个叫定时器的软件,可以设定一个闹钟,如果时间到了,会给当前进程发送编号为14的信号。(闹钟只会响一次) 参数是按照秒为单位设置一个信号。...然后再次运行上面的段错误的代码: 并且还多出来了一个文件。 第一个后面多出来的core dumped就是核心转储操作,多出来的文件就是核心转储的内容。...(二进制临时文件) 作用就是为了更方便调试: 这里直接就帮助我们找到了问题。...如果一个函数符合以下条件之一则是不可重入的: 调用了malloc或free,因为malloc也是用全局链表来管理堆的。 调用了标准I/O库函数。...标准I/O库的很多实现都以不可重入的方式使用全局数据结构。 volatile 该关键字在C当中我们已经有所涉猎,今天我们站在信号的角度重新理解一下。

2.7K30

Linux信号保存与信号捕捉处理

信号保存与信号捕捉 一、信号保存 1....信号的发送 那么在学习信号保存之前,我们先了解一下信号的发送,我们知道普通信号一共有31个,如下: 但是这个31就非常特殊,对于普通信号而言,对于进程而言,自己有还是没有收到哪一个信号。...(2)信号保存概念 实际执行信号的处理动作称为信号递达(Delivery); 信号从产生到递达之间的状态,称为信号未决(Pending); 进程可以选择阻塞 (Block )某个信号; 被阻塞的信号产生时将保持在未决状态...如下图: 更形象的图如下: 像上例这样,insert 函数被不同的控制流程调用,有可能在第一次调用还没返回时就再次进入该函数,这称为重入,insert 函数访问一个全局链表,有可能因为重入而造成错乱,像这样的函数称为不可重入函数...我们先看以下代码,定义一个全局的 flag,然后在 main 函数中以 flag 为恒真条件执行死循环,最后打印一语句,我们知道,这种情况下该语句是不会被打印的: int flag = 1;

14111
领券