Ubuntu 上的 Sublime Text 构建系统:无论成功与否,都无法链接 pkill 命令
Sublime Text build system on Ubuntu: Cannot chain pkill command regardless of success
我试图先杀死一个 运行ning 进程
pkill -f "java.*MySketch"
然后运行再
processing-java --sketch="~/MySketch" --output="~/MySketch/build-tmp" --run --force
然而,在第一次构建时,过程不是 运行ning,所以 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
但它仍然无法在 Sublime Text 中工作。将所有内容移动到 build.sh
脚本也不起作用。它在终端中工作。
在 Sublime 中它说 Finished in 0.3s with exit code -15
。所以我想终止信号(SIGTERM)不是找不到进程而什么都不做,而是结束了我的整个shell_cmd
?! SIGKILL (pkill -9 -f ...
) 也是。
我唯一设法在 Sublime Text 中工作的是一揽子案例,它杀死了所有 java 个进程,pkill java ; processing-java bla bla bla
谢谢!
更新: pkill 首先自杀,因为我的正则表达式模式不够智能,无法仅匹配真实的 java
进程。
问题是这个构建系统首先杀死了自己,因为它自己的命令行匹配 java.*MySketch
。
解决方法:将\"java.*$file_base_name\"
替换为\"java.*$file_path\$\"
详细信息: 查看了我要终止的进程的命令行,发现它以 --sketch-path=~/Sketchbook/MySketch
结尾,而构建系统的命令行以 [=14 结尾=].使用 (blabla)$
正则表达式来匹配字符串的结尾。由于 Sublime Build 系统,不得不带着极端的偏见逃避它... \$
.
我试图先杀死一个 运行ning 进程
pkill -f "java.*MySketch"
然后运行再
processing-java --sketch="~/MySketch" --output="~/MySketch/build-tmp" --run --force
然而,在第一次构建时,过程不是 运行ning,所以 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
但它仍然无法在 Sublime Text 中工作。将所有内容移动到 build.sh
脚本也不起作用。它在终端中工作。
在 Sublime 中它说 Finished in 0.3s with exit code -15
。所以我想终止信号(SIGTERM)不是找不到进程而什么都不做,而是结束了我的整个shell_cmd
?! SIGKILL (pkill -9 -f ...
) 也是。
我唯一设法在 Sublime Text 中工作的是一揽子案例,它杀死了所有 java 个进程,pkill java ; processing-java bla bla bla
谢谢!
更新: pkill 首先自杀,因为我的正则表达式模式不够智能,无法仅匹配真实的 java
进程。
问题是这个构建系统首先杀死了自己,因为它自己的命令行匹配 java.*MySketch
。
解决方法:将\"java.*$file_base_name\"
替换为\"java.*$file_path\$\"
详细信息: 查看了我要终止的进程的命令行,发现它以 --sketch-path=~/Sketchbook/MySketch
结尾,而构建系统的命令行以 [=14 结尾=].使用 (blabla)$
正则表达式来匹配字符串的结尾。由于 Sublime Build 系统,不得不带着极端的偏见逃避它... \$
.