我正在使用intelliJ IDEA。
当我运行程序并关闭窗口时,该过程仍然存在。如果我运行了很多程序,我需要多次点击断开连接。
有没有办法停止所有流程?
Eclipse没有这个问题。
答案 0 :(得分:5)
IntelliJ 2017.2现在在“停止过程”菜单(顶部栏上的按钮)中有一个“全部停止”按钮,默认快捷键⌘ + F2 在OSX上:
对于旧版本:
答案 1 :(得分:0)
kill $(ps aux | grep 'java' | awk '{print $2}')
这是我在SO上发现的一个很好的小解决方法,它将使用" java"在名称中。
只需复制并粘贴到终端即可。
答案 2 :(得分:0)
不完美,但您可以按Ctrl + F2(停止进程的快捷键)并按Enter键。它比所有鼠标点击更好,并且可以非常快速地通过运行流程列表。
答案 3 :(得分:0)
您可以创建类似 killJavaProcess
的脚本,并在 Before launch
部分中将其调用为 External tool
例如~/.bin/killonport
#!/bin/zsh
function help() {
echo "usage: killonport port"
echo "-f don't ask before killing"
echo "-h help"
}
function killListenerOnPort() {
# get script options
zparseopts -E -D h=HELP f=FORCE
[[ -n $HELP ]] &&
help &&
return
local PORT
PORT=$1
[[ -z "$PORT" ]] &&
help &&
return
local LISTEN
# find process listening on port with lsof
LISTEN="$(lsof -nP -iTCP:"$PORT" -sTCP:LISTEN)"
local PROCESS
# remove first line of output lsof
PROCESS="$(echo "$LISTEN" | tail -n +2)"
local HEAD
# get first line of output lsof
HEAD="$(echo "$LISTEN" | head -n 1)"
[[ -z $PROCESS ]] &&
echo "Process not found" &&
return
local COUNT
# assure that found only one process else printing founded processes and exit
COUNT=$(echo "$PROCESS" | wc -l | xargs)
[[ $COUNT -gt 1 ]] &&
printf 'Found more then one process: %s\n%s\n%s\n' "$COUNT" "$HEAD" "$PROCESS" &&
return
# get name and PID
local NAME
NAME=$(echo "$PROCESS" | awk '{print $1}')
local PID
PID=$(echo "$PROCESS" | awk '{print $2}')
# if -f option specified kill silently
[[ -n "$FORCE" ]] &&
kill -9 "$PID" &&
return
# ask confirmation to kill
echo "Kill process '$NAME' with PID '$PID'"
read -qr 'REPL?Continue? (y/n) '
echo
# kill if confirmed
[[ $REPL == 'y' || $REPL == 'Y' ]] &&
kill -9 "$PID"
}
killListenerOnPort "$@"