linux – 为什么`超时2超时1 bash`卡住了
我正在研究
Linux shell中的timeout命令.
当我尝试超时1 bash时,bash会运行并在1秒后被杀死. 当我尝试超时2超时1是,程序是将运行1秒并被第二次超时杀死. 但是当我尝试超时2超时1 bash时,它被卡住了.即使我按下Ctrl C,也不会显示bash shell并继续运行. 我知道在一个命令中写两个超时是没用的. 我只是想知道为什么会这样. 解决方法
这是相同行为的另一个例子:
strace timeout 1 bash 如果我们在同一时间内对bash进程进行了分析,我们会注意到以下循环.
现在,根据http://www.gnu.org/software/libc/manual/html_node/Job-Control-Signals.html
timeout 2 timeout –foreground 1 bash工作,因为内部超时将允许它使用tty,尽管它不是直接从交互式shell运行. 男子超时 --foreground when not running timeout directly from a shell prompt,allow COMMAND to read from the TTY and get TTY signals; in this mode,children of COMMAND will not be timed out 我们可以根据需要链接尽可能多的超时,只要从交互式shell运行的所有超时都使用–foreground选项: 超时3超时 – 前景2超时 – 前景1 bash 同时检查man bash中的SIGNALS部分,了解bash在不同情况下如何对各种信号做出反应的更多信息. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |