터미널에 연결되지 않은 프로세스를 종료하는 방법

터미널에 연결되지 않은 프로세스를 종료하는 방법

저는 OpenVZ VPS를 사용하고 있으며 루트가 아닌 사용자로 백그라운드 프로세스를 생성한 다음 이를 거부했습니다.

user@server:~$node server.js &
user@server:~$disown

VPS에서 SSH를 통해 빠져나오고 이제 다시 들어왔지만 PID를 사용하여 프로세스를 종료할 수는 없는 것 같습니다. Pkill 1292. 심지어 루트로도 실패합니다. 실행하면 top계속 실행되기 때문에 죽지 않았다는 것을 알고 있습니다. 또한, 실행해 보면 ps -l -p 1292프로세스가 계속 실행되는 것을 볼 수 있습니다.

프로세스가 터미널 세션에 연결되지 않았음을 알 수 있습니다.메모이 명령은 TTY에 물음표를 표시합니다.

스크린샷

이 프로세스를 어떻게 종료할 수 있나요?

답변1

pkill(동일한 인터페이스를 사용하는 것과 마찬가지로 pgrep원래는 Solaris 명령이었으며 현재 Linux( procps패키지)를 포함한 다른 많은 Unix 계열 시스템에서 발견됩니다.) 이름에 따라 프로세스를 종료하는 것입니다.

pkill regexp

SIGTERM모든 프로세스에 대해 종료(신호 보내기 )이름1은 주어진 정규 표현식과 일치합니다.

따라서 pkill node이름에 가 포함된 모든 프로세스가 종료됩니다 node. pkill -x node( 정확히 일치하는 경우 / -x에서와 같이 )를 사용하여 이름을 다음과 같이 종료합니다.greppgrep정확히 node.

pid²를 기반으로 종료하는 것은 단지 그것입니다 kill(대부분의 쉘에 내장된 명령이므로 쉘 작업에서도 사용할 수 있지만 독립 실행형 유틸리티로도 사용할 수 있습니다).

kill 6806(의 약어 kill -s TERM 6806)가 실패 하면 다음을 수행할 수 있습니다.최후의 수단으로 시도 kill -s KILL 6806하면 비정상적으로 종료됩니다..


^프로세스 이름이 개념은 운영 체제에 따라 약간씩 다릅니다. Linux에서는 일반적으로 프로세스(또는 가장 가까운 조상)에 의해 실행되는 파일 기본 이름의 최대 처음 15바이트입니다. 그러나 프로세스는 이를 임의의(15바이트 이하) 값으로 변경할 수 있습니다. pkill -f매개변수 목록에 대한 일치도 참조하세요 .

² kill프로세스에 따라 죽일 수도 있습니다.그룹ID. kill -- -123프로세스 그룹 ID가 123인 모든 프로세스에 SIGTERM 신호를 보냅니다. 내장 POSIX 셸의 작업 사양을 사용하는 경우 ( killkill %spec:kill그룹.

관련 정보