source

프로세스 ID를 취득하여 nohup 프로세스를 종료하려면 어떻게 해야 합니까?

gigabyte 2023. 4. 14. 21:45
반응형

프로세스 ID를 취득하여 nohup 프로세스를 종료하려면 어떻게 해야 합니까?

서버에서 노업 프로세스를 실행하고 있습니다.내가 그걸 죽이려 하면 내 퍼티 콘솔이 닫힌다.

프로세스 ID를 찾는 방법은 다음과 같습니다.

ps -ef |grep nohup 

이 명령어는 죽이기 때문에

 kill -9 1787 787

「」를 사용하고 nohup 연산자)에 넣습니다.&PID를 사용하다인 경우 에 필요에 PID를 할 수 .kill PID ★★★★★★★★★★★★★★★★★」kill -9 PID에 PID를 하려면 PID를 참조하려면 , 「PID」를 사용합니다.ps -ef | grep "command name"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 「live 하고 는, 「live」를 할 수 있습니다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 프로세스의 PID를 찾을 수 있으며 다음과 같이만 입력합니다.

kill PID 

(물론 PID를 nohup 프로세스의 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]`

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}

애플리케이션이 항상 같은 포토를 사용하고 있는 경우는, 이러한 방법으로, 그 포토내의 모든 프로세스를 정지할 수 있습니다.

kill -9 $(lsof -t -i:8080)

이것은 에서 동작합니다.Ubuntu

을 .PID

ps aux | grep java

Java와 관련하여 진행 중인 모든 프로세스가 표시됩니다.

저 같은 경우에는

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

, 죽여라!kill -9 3315

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

nohup에서 작업을 생성하면 프로세스 ID가 표시됩니다!

nohup sh test.sh &

출력에는 다음과 같은 프로세스 ID가 표시됩니다.

25013

그러면 죽일 수 있습니다.

kill 25013

다음 명령어로 django 서버를 시작했습니다.

nohup manage.py runserver <localhost:port>

이것은 Cent에서 동작합니다.OS:

:~ ns$netstat -ntlp
:~ ns$kill -9 PID 

이것은 mac에서의 mi fine에 유효합니다.

kill -9 `ps -ef | awk '/nohup/{ print \$2 }'`

저는 이런 식으로 자주 해요.다음과 같이 시도합니다.

ps aux | grep script_Name

여기서 script_Namenohup에 의해 실행되는 임의의 스크립트/파일입니다. 명령어는 프로세스 ID를 가져옵니다.그런 다음 다음 다음 명령을 사용하여 nohup에서 실행 중인 스크립트를 종료합니다.

kill -9 1787 787

여기서 1787과 787은 예시로 질문에 언급된 프로세스 ID입니다.이것은 질문에서 의도한 대로 해야 한다.

PID를 모를 경우 먼저 TOP 명령을 사용하여 PID를 찾습니다.

상위 U 사용자 ID

PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND

top을 사용하여 PID를 얻은 다음 kill 작업을 수행합니다.

$ kill -9 <PID>

오늘도 같은 문제를 만났다.오래 전 일이라 어떤 명령어를 언제 사용했는지 까맣게 잊어버렸어요.세 가지 방법을 시도했습니다.

  1. ps -ef명령어를 입력합니다.이것은 프로세스를 시작하는 시간을 나타냅니다.또한 ssh(depends on)를 닫기 직전에 nohup 명령어를 실행할 가능성이 매우 높습니다.유감스럽게도 최신 명령어는 nohup을 사용하여 실행하는 명령어가 아닌 것 같기 때문에 이 명령어는 사용할 수 없습니다.
  2. 두 번째는 PPID입니다.또, 에도 참조해 주세요.ps -ef명령어를 입력합니다.이는 프로세스를 생성하는 프로세스의 ID인 상위 프로세스 ID를 의미합니다.nohup을 사용하여 실행하는 프로세스의 경우 ppid는 1 in ubuntu입니다.그럼, 을 사용할 수 있습니다.ps --ppid "1"목록을 가져오려면 TIME(프로세스에서 사용하는 총 CPU 시간) 또는 CMD를 확인하여 프로세스의 PID를 찾습니다.
  3. 사용하다lsof -i:port프로세스가 일부 포트를 점유하고 있는 경우 명령어가 표시됩니다.그럼 위의 답변과 마찬가지로ps -ef | grep command그러면 PID를 얻을 수 있습니다.

프로세스의 PID를 찾으면 다음 명령을 사용할 수 있습니다.kill pid프로세스를 종료합니다.

putty : " " " 입니다.ps ... | awk/grep/perl/...프로세스도 일치합니다..

ps -ef | grep -i [n]ohup 

그러면 정규식 검색이 정규식 검색 프로세스와 일치하지 않습니다!

서버상에 는, 「 사용 상황」을 「 사용 상황」으로 합니다.top아이디다음에 그냥 .kill [your process ID].

언급URL : https://stackoverflow.com/questions/17385794/how-to-get-the-process-id-to-kill-a-nohup-process

반응형