실행중인 터미널 프로그램의 프로세스 ID (PID)를 찾는 방법은 무엇입니까? 실행하고 Ctrl- C내가 죽이고

나는 탈출 할 수없는 단말기에서 프로그램을 실행하고 CtrlC내가 죽이고 싶어. PID를 어떻게 찾을 수 있습니까?



답변

다른 터미널을 열고 ps ax | grep foo여기서 foo는 응답하지 않는 프로그램의 이름입니다. 이것은 다음과 같은 출력 라인을 반환해야합니다.

$ ps ax | grep firefox
2222 ?        S      0:00 /bin/sh /usr/lib/firefox-3.6.9/firefox
2231 ?        Sl   514:36 /usr/lib/firefox-3.6.9/firefox-bin
30290 pts/2    S+     0:00 grep --color=auto firefox

각 출력 행의 첫 번째 필드는 일치하는 프로그램의 프로세스 ID를 나타내는 숫자입니다 grep(마지막 필드는 무시해도 grep됩니다).

문제가있는 프로세스를 중지하려면 다음을 수행하십시오.
kill pid여기서 pid는 프로그램의 프로세스 ID입니다. 어떤 경기를해야하는지 판단해야 할 수도 있고 대신 kill사용할 수도 있습니다 top. kill자체적으로 사용하면 SIGTERM이 전송됩니다. SIGTERM은 프로그램 자체가 올바르게 정리되도록하기 위해 먼저 시도해야합니다. SIGTERM이 실패하면, 스톤 거 약인 SIGHUP을 시도하십시오 : kill -HUP pid. 다른 모든 방법이 실패하면 SIGKILL을 보내십시오. 그러나 SIGKILL로 인해 커널이 정리 가능성없이 즉시 프로세스를 종료하게되므로 최후의 수단으로 만 사용해야합니다. 때때로 데이터가 손상되거나 다른 문제가 발생할 수 있습니다. 다시 한번, SIGKILL을 최후의 수단으로 보내십시오. 그렇게하려면 kill -KILL pid또는 을 수행하십시오 kill -9 pid.

물론 그래픽 인터페이스를 실행하는 경우 작업을 수행하기 위해이 미친 명령 줄을 속일 필요가 없습니다. “시스템 모니터”를 열고 프로세스 탭으로 이동 한 후 중지하려는 프로세스 (Hm, 90 % CPU를 사용하는 프로세스 일 수 있음)를 선택하고 마우스 오른쪽 단추를 클릭하십시오. 프로세스가 이미 중지되었으므로 (문제입니까?) 결과 메뉴에서 프로세스 종료 또는 프로세스 종료를 선택하십시오.

koanhead에 신용


답변

pgrep, pkill, pidof 등으로 동일한 명령을 수행 할 수있을 때 긴 명령이 필요하다고 생각하지 않습니다.

  • 실행중인 프로그램의 pid를 얻으려면

pgrep :

   pgrep [options] pattern

DESCRIPTION :
pgrep은 현재 실행중인 프로세스를 살펴보고 선택 기준과 stdout에 일치하는 프로세스 ID를 나열합니다. 모든 기준이 일치해야합니다. 예를 들어

  • root가 소유 한 sshd라는 프로세스를 찾습니다.

    $ pgrep -u root sshd
    
  • 루트 OR 데몬이 소유 한 프로세스를 나열하십시오.

    $ pgrep -u root,daemon
    

pidof :

설명 :

Pidof는 명명 된 프로그램의 프로세스 ID (pid)를 찾습니다. 표준 출력에 해당 ID를 인쇄합니다.

구문 :
pidof program_name

  • pid를 사용하여 프로그램을 종료하려면 pkill 예제를 사용하십시오.

    pkill pid
    pkill -f process_name
    pkill -o process_name
    pkill -n process_name
    pkill -l process_name
    

    -f플래그 : process_name을 검색합니다 (man pkill 참조).
    -o플래그 : 가장 오래된 일치 프로세스 만 선택하십시오.
    -n플래그 : 최신 일치 프로세스 만 선택하십시오.
    -l플래그 : 프로세스 이름과 프로세스 ID를 나열합니다.


답변

실행중인 프로그램의 pid를 아는 가장 쉬운 방법은 다음을 사용하는 것입니다.

pidof <application name>

예를 들어, vim을 시작하고 pid를 알고 싶다면 다음을 수행하십시오.

pidof vim

시작된 정확한 프로그램 이름을 제공해야합니다.

예를 들어 vi를 실행하고 실행 pidof vim하면 올바른 결과를 얻지 못합니다.

자세한 내용은 pidof의 설명서 페이지를 참조하십시오.


답변

더 자세한 출력을 얻으려면 “-i”를 추가하고 “ax”대신 “aux”를 사용하여 대소 문자를 구분하지 않는 검색을 사용하는 것이 좋습니다.

ps aux | grep -i firefox

모든 프로세스를 종료하려면 다음을 사용할 수 있습니다.

ps aux | grep -i firefox | awk {'print $2'} | xargs kill -9

그것은 강력한 살인입니다. 소프트 킬을 원하면 “-9″를 떨어 뜨린다.


답변

pid 만 원한다면 (자동 킬 스크립트 등에 유용합니다.)

pgrep -f desired_program_name

답변

우분투 16.04 LTS를 실행하는 사람들을 위해, 당신은 해야 사용할 ps ax뿐 아니라ps , 그렇지 않으면 당신은 당신이에있어 특정 단말기 인스턴스에서 산란 프로세스를 얻을 것이다, 명령 줄에서. (대개 ‘배쉬'[당신이있어 쉘을 ] 및 ‘ps'[방금 실행 한 내용])


답변

다른 터미널을 열거 나 다른 tty로 전환하여 top기본적으로 시스템 모니터의 텍스트 버전 인을 실행할 수도 있습니다. 첫 번째 열에는 실행중인 각 프로세스의 PID가 나열되어 있습니다.을 누르고 KPID를 입력 한 다음 전송할 숫자 신호를 입력하여 종료 할 수 있습니다.