linux的信号有哪些

47次阅读
没有评论

共计 3178 个字符,预计需要花费 8 分钟才能阅读完成。

这篇“linux 的信号有哪些”文章的知识点大部分人都不太理解,所以丸趣 TV 小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“linux 的信号有哪些”文章吧。

linux 信号有:1、SIGHUP,用于让进程立即关闭,然后重新读取配置文件之后重启;2、SIGINT,程序中止信号,用于中止前台进程;3、SIGQUIT,程序退出信号;4、SIGFPE,在发生致命的算术运算错误时发出;5、SIGKILL,用来立即结束程序的运行;6、SIGALRM,时钟定时信号;7、SIGTERM,正常结束进程的信号;8、SIGCONT;9、SIGSTOP 等。

linux 中信号是什么

进程的管理主要是指进程的关闭与重启。我们一般关闭或重启软件,都是关闭或重启它的程序,而不是直接操作进程的。比如,要重启 apache 服务,一般使用命令 service httpd restart 重启 apache 的程序。

那么,可以通过直接管理进程来关闭或重启 apache 吗?答案是肯定的,这时就要依赖进程的信号(Signal)了。我们需要给予该进程号,告诉进程我们想要让它做什么。

系统中可以识别的信号较多,我们可以使用命令 kill -l 或 man 7 signal 来查询。命令如下:

[root@localhost ~]#kill -l
1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP
6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1
11)SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15)SIGTERM 16) SIGSTKFLT 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP 21) SIGTTIN 22) SIGTTOU 23) SIGURG
24) SIGXCPU 25) SIGXFSZ 26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO 30) SIGPWR 31) SIGSYS 34) SIGRTMIN 35) SIGRTMIN+1 36) SIGRTMIN+2 37) SIGRTMIN+3 38) SIGRTMIN +4 39) SIGRTMIN +5 40) SIGRTMIN+6 41)SIGRTMIN+7 42) SIGRTMIN+8 43) SIGRTMIN +9 44) SIGRTMIN +10 45) SIGRTMIN+11 46) SIGRTMIN+1247) SIGRTMIN+13 48) SIGRTMIN +14 49) SIGRTMIN +15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12 53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9 56) SIGRTMAX-8 57) SIGRTMAX-7 58) SIGRTMAX-6 59) SIGRTMAX-5 60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-2 63) SIGRTMAX-1 64) SIGRTMAX

linux 中常见的信号

信号代号信号名称说 明 1SIGHUP 该信号让进程立即关闭. 然后重新读取配置文件之后重启 2SIGINT 程序中止信号,用于中止前台进程。相当于输出 Ctrl+C 快捷键 3SIGQUIT 程序退出信号(同 Ctrl + \)8SIGFPE 在发生致命的算术运算错误时发出。不仅包括浮点运算错误,还包括溢出及除数为 0 等其他所有的算术运算错误 9SIGKILL 用来立即结束程序的运行。本信号不能被阻塞、处理和忽略。般用于强制中止进程 14SIGALRM 时钟定时信号,计算的是实际的时间或时钟时间。alarm 函数使用该信号 15SIGTERM 正常结束进程的信号,kill 命令的默认信号。如果进程已经发生了问题,那么这 个信号是无法正常中止进程的,这时我们才会尝试 SIGKILL 信号,也就是信号 918SIGCONT 该信号可以让暂停的进程恢复执行。本信号不能被阻断 19SIGSTOP 该信号可以暂停前台进程,相当于输入 Ctrl+Z 快捷键。本信号不能被阻断

KILL, STOP 信号不可被阻塞、忽略、捕获。

Term 表示终止进程。Core 表示终止进程并 dump core。Stop 挂起线程,Cont 恢复挂起的线程。

常见信号的常见用途

SIGHUP

本信号在用户终端连接 (正常或非正常) 结束时发出, 通常是在终端的控制进程结束时, 通知同一会话内的各个作业, 这时它们与控制终端不再关联。

登录 Linux 时,系统会分配给登录用户一个终端会话(Session)。在这个终端运行的所有程序,包括前台进程组和后台进程组,一般都属于这个会话。当用户退出 Linux 登录时,前台进程组和后台有对终端输出的进程将会收到 SIGHUP 信号。

这个信号的默认操作为终止进程,因此退出登录之后,前后台进程和后台有终端输出的进程就会中止。

不过可以捕获这个信号,比如 wget 能捕获 SIGHUP 信号,并忽略它,这样就算退出了 Linux 登录,wget 也能继续下载。

此外,对于与终端脱离关系的守护进程,这个信号用于通知它重新读取配置文件。

比如,向 nginx 进程发送 HUP 信号就可以刷新配置。

SIGINT:程序终止 (interrupt) 信号, 在用户键入 INTR 字符 (通常是 Ctrl-C) 时发出,用于通知前台进程组终止进程。

SIGQUIT:和 SIGINT 类似, 但由 QUIT 字符 (通常是 Ctrl-\) 来控制. 进程在因收到 SIGQUIT 退出时会产生 core 文件, 在这个意义上类似于一个程序错误信号。

SIGTERM:

程序结束 (terminate) 信号, 与 SIGKILL 不同的是该信号可以被阻塞和处理。通常用来要求程序自己正常退出,允许进程做一些必要的清理工作后退出。

shell 命令 kill 缺省产生这个信号。如果进程终止不了,我们才会尝试 SIGKILL。

SIGTERM 让进程体面的结束,如果进程自己不体面,就用 SIGKILL 帮它体面。

SIGCONT:让一个停止 (stopped) 的进程继续执行. 本信号不能被阻塞. 可以用一个 handler 来让程序在由 stopped 状态变为继续执行时完成特定的工作. 例如, 重新显示提示符…

SIGSTOP:停止 (stopped) 进程的执行. 注意它和 terminate 以及 interrupt 的区别: 该进程还未结束, 只是暂停执行. 本信号不能被阻塞, 处理或忽略.

常用信号快捷键

ctrl-c 发送 SIGINT 信号给前台进程组中的所有进程。常用于终止正在运行的程序。

ctrl-z 发送 SIGTSTP 信号给前台进程组中的所有进程,常用于挂起一个进程。

ctrl-d 不是发送信号,而是表示一个特殊的二进制值,表示 EOF。

ctrl-\ 发送 SIGQUIT 信号给前台进程组中的所有进程,终止前台进程并生成 core 文件。

KeyFunctionCtrl-cKill foreground processCtrl-zSuspend foreground processCtrl-dTerminate input, or exit shellCtrl-sSuspend outputCtrl-qResume outputCtrl-oDiscard outputCtrl-lClear screen

以上就是关于“linux 的信号有哪些”这篇文章的内容,相信大家都有了一定的了解,希望丸趣 TV 小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注丸趣 TV 行业资讯频道。

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-12发表,共计3178字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)