当前位置:  开发笔记 > 编程语言 > 正文

bash中的“ exec some_cmd&”是什么意思

如何解决《bash中的“execsome_cmd&”是什么意思》经验,为你挑选了1个好方法。

exec some_cmd &在此脚本中找到了一个用法:

...
exec elixir \
  -pa _build/prod/consolidated \
  --no-halt \
  --erl "+A$THREAD_COUNT" \
  --erl "+K true" \
  --erl "-smp auto" \
  --erl "+scl false" \
  --erl "+spp true" \
  --erl "+swt low" \
  --erl "+sbwt long" \
  --sname $NODE \
  --cookie $COOKIE \
  -S mix run \
    --no-compile \
$@ \
&
...

exec some_cmd用替换外壳some_cmd。在后台作为子进程some_cmd &生成some_cmd。那么将它们结合在一起会发生什么呢?

我尝试了bash 3.2,结果表明它看起来像是在生成一个后台进程:

# script
echo "Shell PID: $$"
exec sh -c 'echo "Child PID: $$"' &
BG_PID=$!
echo "Background process PID: $BG_PID"

# output
Shell PID: 8852
Background process PID: 8853
Child PID: 8853

虽然我不确定是否与完全相同some_cmd &



1> rob mayoff..:

exec在这种情况下,该命令无效。通常,exec这可以防止bash在调用之前分叉execve,但是在这种情况下bash还是会分叉,因为您说过了&

因此exec some_cmd &与相同some_cmd &

您可以使用exec&如果你需要使用的一个反正exec标志。输入help exec以查看标志exec支持的内容。

推荐阅读
帆侮听我悄悄说星星
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有