我想测试一些错误,为此我需要有 PID 大于 99999 的情况。我正在考虑一个 bash 脚本,一个 for 循环。有任何想法吗?
答案1
您可以执行类似的操作来启动具有所需 PID 的进程。
while true; do bash -c '[[ "$$" == 99999 ]] && echo PID is 99999'; done
您可以等到获得所需的 PID,然后可能将语句替换echo
为您实际需要测试的内容。
参考
编辑
为什么PID号会增长?是因为您一遍又一遍地运行不同的 bash 实例吗?
我相信你所说的就是正在发生的事情。这可以简单地测试如下。
while true; do bash -c 'echo $$' ; done
我们可以看到 PID 不断增加,从 的手册页中bash
我看到,
-c string 如果存在 -c 选项,则从字符串读取命令。如果字符串后面有参数,它们将被分配给位置参数,从 $0 开始。
因此,根据我的理解,echo
上述测试中的每个语句都作为一个单独的进程执行,这就是为什么我们可以看到 PID 正在递增。
答案2
无论你想做什么,很可能都有更好的方法,但如果你决心像
while [[ 1 == 1 ]]; do sleep 10000& done
将启动许多sleeps
,但可能需要一段时间才能启动所有。当你有足够的进程时,只需点击Ctrl-C
退出while
循环即可。