깨끗하게 닫히지 않는 불량 레일 서버 프로세스를 제거 할 수 있도록 내 bash 프로파일에 별명을 썼습니다. 이 별칭은 잘 작동합니다.쉘 함수에서 lsof에 포트 번호 전달
alias kill3000="lsof -i tcp: 3000 -t | xargs kill -9 | echo 'killed processes on port 3000'"
다른 포트에서 작동하는 프레임 워크의 경우보다 일반적인 용도로 만들고 싶습니다. 유사한 함수를 만들려고 했으므로 포트 번호를 변수로 전달할 수는 있지만 오류가 발생합니다. 나는 "killproc 3000"를 실행할 때 내가 쓴 기능은 나는 다음과 같은 오류 얻을, 그러나 ...이 같은
function killproc(){
"lsof -i tcp:$1 -t | xargs kill -9 | echo 'killed processes on port $1'"
}
을 찾습니다, 내가 문제를 이해하는 데 어려움을 겪고있어
lsof: unacceptable port specification in: -i tcp:
를 I 어떤 도움을 주셔서 감사합니다.
''lsof -i ... 죽였어. ''''의심스러운 것 같습니다. 또한 상황을 디버깅하려면'set -vx; ... cmd ....; set + vx'를 사용하여 쉘이 코드를 해석하는 방법을 확인하십시오. '+'로 시작하는 줄은 모든 변수 값을 제자리에 표시합니다. ''dbl-quoted 문자열은 모두 '' '단일 인용 문자열로 "표준화"되어 있습니다. 행운을 빌어 요. – shellter
'set -vx'는 문제를 찾는 데 매우 도움이되었습니다. 변수가 반복되어서 찾고있었습니다. 3000 3000 포트에 대한 오류가 발생했습니다. 왜 그 일이 일어 났는지 정확히 모르겠지만'exec bash '를 실행하면 문제가 해결되었습니다. 도움을 주셔서 감사합니다. –