[linux] nohup 프로세스를 종료하기 위해 프로세스 ID를 얻는 방법은 무엇입니까?

서버에서 nohup 프로세스를 실행 중입니다. 그것을 죽이려고하면 퍼티 콘솔이 대신 닫힙니다.

이것이 프로세스 ID를 찾는 방법입니다.

ps -ef |grep nohup 

이것은 죽이는 명령입니다

 kill -9 1787 787



답변

사용하는 경우 nohup당신은 백그라운드에서 작업을 넣어, 배경 연산자 ( &) 프롬프트 명령에 당신에게 PID를 제공 할 것입니다. 계획이 프로세스를 수동으로 관리하려는 경우 PID를 저장하고 나중에 PID를 저장하여 필요할 경우 kill PID또는 kill -9 PID강제로 강제 종료해야하는 경우 프로세스 를 강제 종료 할 수 있습니다. 또는 나중에 ps -ef | grep "command name"PID를 찾아 PID를 찾을 수 있습니다. 참고 nohup키워드 / 명령 자체가 표시되지 않는 ps문제의 명령의 출력.

스크립트를 사용한 경우 다음과 같은 작업을 수행 할 수 있습니다.

nohup my_command > my.log 2>&1 &
echo $! > save_pid.txt

이것은 실행 my_command에 모든 출력 저장 my.log(스크립트의를 $!마지막 프로세스의 PID 실행 나타낸다). 는 2표준 오류에 대한 파일 기술자 (인 stderr) 및 2>&1표준 출력 (파일 기술자로 라우팅 표준 오류 출력에 쉘을 알려줍니다 1). &1쉘이 파일 이름이 아닌 해당 컨텍스트에서 파일 디스크립터임을 알 수 있도록 요구합니다 1. 는 2>&1일반적으로 우리에 표준 오류에 기록되는 오류 메시지를 캡처하기 위해 필요 my.log(표준 출력에서 오는) 파일을. 셸을 사용한 I / O 리디렉션 처리에 대한 자세한 내용 은 I / O 리디렉션 을 참조하십시오.

명령이 정기적으로 출력을 보내면을 사용하여 가끔 출력을 확인 tail my.log하거나 “실시간”을 따라 가려면을 사용할 수 있습니다 tail -f my.log. 마지막으로 프로세스를 종료해야하는 경우 다음을 통해 수행 할 수 있습니다.

kill -9 `cat save_pid.txt`
rm save_pid.txt


답변

VPS 서버 (및 SSH-putty를 통해)에서 Red Hat Linux를 사용하고 있습니다.

먼저 실행중인 모든 프로세스를 나열합니다.

ps -ef

그런 다음 첫 번째 열에 사용자 이름이 있습니다. 나는 그것을 다음 세 번 발견했다.

  • 하나는 SSH 연결이었습니다
  • 두 번째는 FTP 연결이었습니다
  • 마지막은 nohup 프로세스였습니다

그런 다음 두 번째 열에서 nohup 프로세스의 PID를 찾을 수 있으며 다음을 입력하십시오.

kill PID 

(물론 nohup 프로세스의 PID로 PID를 대체합니다)

그리고 그게 다야!

이 답변이 bash 및 SSH를 처음 접하는 사람에게 유용하지만 여기에서 필요한 지식의 95 %를 찾았습니다. 🙂


답변

아래 명령으로 백그라운드에서 루비 스크립트를 실행한다고 가정하십시오.

nohup ruby script.rb &

그런 다음 명령 이름을 지정하여 위의 백그라운드 프로세스의 pid를 얻을 수 있습니다. 제 경우에는 명령이 루비입니다.

ps -ef | grep ruby

산출

ubuntu   25938 25742  0 05:16 pts/0    00:00:00 ruby test.rb

kill 명령을 사용하여 프로세스를 쉽게 종료 할 수 있습니다.

kill 25938


답변

jobs -l 은 nohup 프로세스 목록에 대한 pid를 제공해야합니다. 그들을 부드럽게 (-9) 죽이십시오. 😉


답변

당신은 시도 할 수 있습니다

kill -9 `pgrep [command name]`


답변

이것은 작동합니다 Ubuntu

이것을 입력하여 PID

ps aux | grep java

자바에 관한 모든 실행중인 프로세스가 표시됩니다

내 경우에는

johnjoe      3315  9.1  4.0 1465240 335728 ?      Sl   09:42   3:19 java -jar batch.jar

자 죽여 kill -9 3315

좀비 프로세스가 마침내 중단되었습니다.


답변

nohup으로 Java 프로그램을 실행한다고 가정하면 Java 프로세스 ID를 얻을 수 있습니다.

`ps aux | grep java`

산출

xxxxx     9643  0.0  0.0  14232   968 pts/2   

다음을 입력하여 프로세스를 종료 할 수 있습니다

sudo kill 9643

또는 모든 Java 프로세스를 종료해야한다고 말하면됩니다.

sudo killall java

이 명령은 모든 Java 프로세서를 종료합니다. 프로세스와 함께 사용할 수 있습니다. 명령 끝에 프로세스 이름을 지정하십시오.

sudo killall {processName}