首页 > 编程知识 正文

显示arp表项信息命令,linux信号机制

时间:2023-05-04 12:22:41 阅读:37782 作者:262

运行以下命令时,将显示Linux支持的信号列表:

$kill-L1(sighup2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP 6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10 ) SIGUSR1 11 ) SIG Sese 18 ) SIGCONT 19 ) SIGSTOP 20 ) SIGTSTP 21 ) SIGTTIN22 ) SIGTTOU 23 ) SIGURG 24 ) SIGXCPU 25 sigvtalrm27(sigprof28 ) SIGWINCH 29 ) sigtal ) SIGRTMIN 136 ) SIGRTMIN 2 37 ) SIGRTMIN 3 38 ) ) sigrtmin540(sigrtmin641 ) SIGRTMIN 7 42 ) SIGRTMIN 8 43 ) SIGRTMIN 944 ) SIGRTMIN 10 45 ) SIGRTMIN 11 46 ) SIGRTMIN 12 47 ) sigrtmin 1344 (sigrtmin1550 ) SIGRTMAX-14 51 ) SIGRTMAX-1352 ) SIGRTMAX-12 53 ) SIGRTMAX-11 54 ) SIGRTMAX-10 55 ) SIGRTMAX-10 55 SIGRTMAX-4 61 ) SIGRTMAX-3 62 ) SIGRTMAX-2 63 ) SIGRTMAX-164 ) sigrtmax不可靠信号和可靠信号的区别在于前者支持队列

讨论编号为jqdwdm的信号。

1 ) SIGHUP

在用户终端连接(正常或非正常)结束时发出本信号,通常在终端控制进程结束时通知同一session中的每个作业。 此时,它们与控制终端没有关联。

登录Linux后,系统会为登录用户分配终端(Session )。 运行在此终端上的所有程序(包括前台进程组和后台进程组)通常都属于此会话。 用户退出Linux登录后,前台进程组和后台有终端输出的进程将收到SIGHUP信号。 由于此信号的默认操作是退出进程,因此前台进程组和后台具有终端输出的进程将中止。 但是可以捕获这个信号。 例如,构件可以捕获并忽略SIGHUP信号。 这样,即使退出Linux登录,wget也可以继续下载。

此信号还用于通知与终端断开关系的守护进程重新装入配置文件。

2 ) SIGINT

程序退出(interrupt )信号是在用户输入INTR字符(通常为Ctrl-C )时发出的,用于向前台进程组通知进程的结束。

3 ) SIGQUIT

与SIGINT类似,但由QUIT字符(通常为Ctrl-/)控制。 进程类似于程序错误信号,因为它在收到SIGQUIT并退出时生成核心文件。

4 ) SIGILL

执行了不正当的命令。 这通常是因为可执行文件本身发生错误或试图运行数据段。 堆栈溢出时也可能发生此信号。

5 ) SIG捕获

由断点指令或其他trap指令生成。 由调试器使用。

6 ) SIGABRT

调用abort函数生成的信号。

7 ) SIGBUS

不正确的地址。 包含内存地址对齐错误。 例如,访问4个字符的整数,但地址不是4的倍数。 与SIGSEGV的区别在于,后者是由对合法存储地址的未授权访问触发的。 例如,访问不属于自己的存储区域,或者不属于只读存储区域。

8 ) SIGFPE

发生致命算术运算错误时发出。 除浮点运算错误外,还包括所有其他算术错误,如溢出和除数为0。

9 ) SIGKILL

用于立即结束程序的执行。 本信号不能被屏蔽、处理、忽视。 如果管理员发现进程无法终止,请尝试发送此信号。

10 ) SIGUSR1

让用户使用

11 ) SIGSEGV

尝试访问未分配给自己的内存,或将数据写入没有写入权限的内存地址。

12 ) SIGUSR2

让用户使用

13 ) SIGPIPE

管子破裂。 此信号通常发生在进程间通信中。 例如,两个采用FIFO (管道)通信的进程将导致引线管道未打开或意外写入管道,而写入进程将接收SI

GPIPE信号。此外用Socket通信的两个进程,写进程在写Socket的时候,读进程已经终止。

14) SIGALRM
时钟定时信号, 计算的是实际的时间或时钟时间. alarm函数使用该信号.

15) SIGTERM
程序结束(terminate)信号, 与SIGKILL不同的是该信号可以被阻塞和处理。通常用来要求程序自己正常退出,shell命令kill缺省产生这个信号。如果进程终止不了,我们才会尝试SIGKILL。

17) SIGCHLD
子进程结束时, 父进程会收到这个信号。

如果父进程没有处理这个信号,也没有等待(wait)子进程,子进程虽然终止,但是还会在内核进程表中占有表项,这时的子进程称为僵尸进程。这种情况我们应该避免(父进程或者忽略SIGCHILD信号,或者捕捉它,或者wait它派生的子进程,或者父进程先终止,这时子进程的终止自动由init进程来接管)。

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

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

20) SIGTSTP
停止进程的运行, 但该信号可以被处理和忽略. 用户键入SUSP字符时(通常是Ctrl-Z)发出这个信号

21) SIGTTIN
当后台作业要从用户终端读数据时, 该作业中的所有进程会收到SIGTTIN信号. 缺省时这些进程会停止执行.

22) SIGTTOU
类似于SIGTTIN, 但在写终端(或修改终端模式)时收到.

23) SIGURG
有"紧急"数据或out-of-band数据到达socket时产生.

24) SIGXCPU
超过CPU时间资源限制. 这个限制可以由getrlimit/setrlimit来读取/改变。

25) SIGXFSZ
当进程企图扩大文件以至于超过文件大小资源限制。

26) SIGVTALRM
虚拟时钟信号. 类似于SIGALRM, 但是计算的是该进程占用的CPU时间.

27) SIGPROF
类似于SIGALRM/SIGVTALRM, 但包括该进程用的CPU时间以及系统调用的时间.

28) SIGWINCH
窗口大小改变时发出.

29) SIGIO
文件描述符准备就绪, 可以开始进行输入/输出操作.

30) SIGPWR
Power failure

31) SIGSYS
非法的系统调用。

在以上列出的信号中,程序不可捕获、阻塞或忽略的信号有:SIGKILL,SIGSTOP
不能恢复至默认动作的信号有:SIGILL,SIGTRAP
默认会导致进程流产的信号有:SIGABRT,SIGBUS,SIGFPE,SIGILL,SIGIOT,SIGQUIT,SIGSEGV,SIGTRAP,SIGXCPU,SIGXFSZ
默认会导致进程退出的信号有:SIGALRM,SIGHUP,SIGINT,SIGKILL,SIGPIPE,SIGPOLL,SIGPROF,SIGSYS,SIGTERM,SIGUSR1,SIGUSR2,SIGVTALRM
默认会导致进程停止的信号有:SIGSTOP,SIGTSTP,SIGTTIN,SIGTTOU
默认进程忽略的信号有:SIGCHLD,SIGPWR,SIGURG,SIGWINCH

此外,SIGIO在SVR4是退出,在4.3BSD中是忽略;SIGCONT在进程挂起时是继续,否则是忽略,不能被阻塞。 

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。