Ubuntu上的Sublime Text构建系统:无法链接pkill命令,无论是否成功



我想先杀死一个正在运行的进程

pkill -f "java.*MySketch"

然后再运行一次

processing-java --sketch="~/MySketch" --output="~/MySketch/build-tmp" --run --force

然而,在第一次构建过程没有运行,所以pkill找不到任何东西。我希望构建系统跳过这个错误,继续执行processing-java

Processing.sublime-build

  "linux": {
    // Close old sketch on build
    "shell_cmd": "pkill -f "java.*$file_base_name" ; processing-java --sketch="$file_path" --output=$file_path/build-tmp --run --force"
  },

我试过使用;并在pkill命令的末尾附加|| true。也尝试了pgrep -f "java.*MySketch" | xargs kill > /dev/null 2>&1,但它仍然不能在崇高的文本工作。将所有内容移动到build.sh脚本也不起作用。它在终端工作。在Sublime中是Finished in 0.3s with exit code -15。所以我想,而不是没有找到一个进程,什么也不做,终止信号(SIGTERM)结束了我的整个shell_cmd ?!SIGKILL (pkill -9 -f ...) too.

我唯一能在Sublime Text中工作的是一个杀死所有java进程的毯子案例,pkill java ; processing-java bla bla bla

谢谢!

UPDATE: pkill首先杀死自己,因为我的regex模式不够聪明,无法匹配真正的java进程。

问题是这个构建系统首先杀死自己,因为它自己的命令行匹配java.*MySketch

解决方案:"java.*$file_base_name"替换为"java.*$file_path\$"

Details:查看我想要杀死的进程的命令行,看到它以--sketch-path=~/Sketchbook/MySketch结束,而构建系统的命令行以--force结束。使用(blabla)$ regex匹配字符串的结尾。因为崇高建造系统,我不得不带着极端的偏见逃离它……\$ .

相关内容

  • 没有找到相关文章

最新更新