杀死兄弟姐妹过程



我想拥有一个脚本,该脚本将:

  • 触发make 2&>1 | less -R
  • 聆听文件夹中的每一个更改(使用inotifywait -R

修改文件夹时,脚本必须杀死less进程并重新启动。

我不确定正确执行此操作的方法(允许脚本的两个分支并行运行 允许观察工作知道less作业的PID,因为后者必须在前景中)。

如果您只想每次更改某些东西时都触发自动重新编译,则可以尝试以下内容:

while inotifywait -qqr /dir/to/watch; do
   make | less
done

我意识到,每次发出重新编译时,这种解决方案不会杀死较少的命令

上面的略有变化是在完成之后较少:

while inotifywait -qqr /dir/to/watch; do
   make
done | less

此版本将立即触发重新编译(在第一个制作完成后),但是它将要求您通过LINS的所有输出(并且不要使用Q终止)

这是您可能想与之一起玩的另一个变体。在此版本中,如果您更改代码,则正在进行的制作将被杀死和重新启动。但是,将没有输出的屏幕分页(这很难与背景过程结合):

BGPID=0
while inotifywait -qqr /dir/to/watch; do
   [ "$BGPID" -gt 1 ] && kill $BGPID
   (make | tail -f)&
   BGPID=$!
done

而不是使用较少的尝试尾巴。

make命令:

make 2&>1 /output/file

和另一个终端中的尾巴命令:

tail -f /output/file

应该向您展示所有发生所有变化的现场流。

相关内容

  • 没有找到相关文章

最新更新