超时linux命令行为

时间:2015-07-23 08:59:55

标签: linux timeout gnu-coreutils

我正在查看linux public class CsvData { [CsvColumn(FieldIndex = 0)] public int x { get; set; } [CsvColumn(FieldIndex = 1)] public int y { get; set; } [CsvColumn(FieldIndex = 2)] public int z { get; set; } } 命令。

Q1:timeout实用程序是否也向timeout发送信号?

Q2:如果父进程在超时间隔之前退出,它会终止childprocess吗?

我跳过文档之间,但我找不到适合这种行为的文档。

我的观察结果:

我将以下脚本作为childprocesses

运行

test.sh

timeout 2s ./test.sh

这里 #!/bin/bash (sleep 5; echo "Hello World") & (sleep 5; echo "Hello World") & (sleep 5; echo "Hello World") & (sleep 5; echo "Hello World") & 在2s之前退出,因此我认为超时实用程序无法杀死分叉进程,因此我在5秒后看到test.sh

这是否意味着超时不能杀死子进程?

1 个答案:

答案 0 :(得分:0)

问题不在于单独的进程组,因为这是一个脚本,因此不是交互式shell,因此关闭了作业控制。您可以通过将其添加到脚本底部来查看:

ps -o comm,pid,pgrp

问题是您的脚本会触发后台任务(在同一进程组中),但随后会退出。超时(1)看到退出然后退出自己。您可能想要做的是让脚本在最后添加wait来等待其后台任务完成。