우분투 서버의 pkill

우분투 서버의 pkill

나는 명령을 다음 pkill과 같이 사용합니다.뿌리내 vps 우분투에서 서버에서 쫓겨나서 액세스할 수 없습니다.

제가 터미널에 쓴 내용은 다음과 같습니다.

pkill h

시간내 우분투 사용자야?

해결책은 무엇입니까?

답변1

특정 사용자에 속한 모든 프로세스를 종료하려면 다음을 사용하십시오.

pkill -U user .

.끝에 있는 모든 프로세스 이름과 일치하고 -U user이름이 지정된 사용자에 속한 프로세스로 작업을 제한합니다 user.

명령이 어떤 프로세스에 영향을 미치는지 확인하려면 명령 자체를 로 바꾼 다음 추가하여 "긴 출력"을 얻을 pkill수 있습니다(프로세스 이름도 표시됨).pkillpgrep-l

pgrep -l h

위 명령은 h이름에 해당 문자가 포함된 시스템의 모든 명령을 표시해야 하며, 아래 명령은 이름이 다음과 같은 사용자에 속한 모든 명령을 표시합니다 user.

pgrep -l -U user .

답변2

당신은 우리에게 말한다,

제가 터미널에 쓴 내용은 다음과 같습니다.pkill h

또한 여기서 일어나는 일은 이름에 포함된 모든 프로세스를 root종료한다는 것입니다 . h여기에는 sshd인바운드 요청을 제어하는 ​​마스터 ssh와 기존 연결을 중재하는 모든 하위 노드가 포함됩니다.

그래픽이 아닌 콘솔에 로그인하여 직접 재부팅할 수 없는 경우 시스템 강제 재부팅을 예약해야 합니다.

익숙하지 않은 명령에 대해서는 문서를 확인하는 습관을 들이는 것이 좋습니다. 여기서는 man pkill첫 번째 예로 특정 사용자가 소유한 프로세스만 선택하는 방법을 보여준다. 상황에 맞게 예를 적용해 보세요.

pkill -u h          # user "h"

더 나은 방법은 pgrep먼저 올바른 프로세스 집합과 일치하는지 확인하는 것입니다.

pgrep -a -u h       # -a shows "all" the command line, for user "h"

또는 신호 0을 보내고 아무것도 하지 않습니다.

pkill -0 -e -u h    # Signal zero, "echo" affected processes, for user "h"

사용자 이름은 정확히 일치해야 하지만 프로세스 이름은 부분적으로 일치해야 합니다. (이것이 h원래 명령에 일치하는 이유가 있습니다 sshd.)

관련 정보