UNIX에서 진행 중인 작업의 PID를 찾는 방법은 무엇입니까?

UNIX에서 진행 중인 작업의 PID를 찾는 방법은 무엇입니까?

일부 내부 응용 프로그램을 호출하는 쉘 스크립트를 실행했는데 몇 시간이 걸립니다. 몇 가지 문제로 인해 이 작업을 중단하거나 종료해야 했습니다. 이를 위해 먼저 ps -u $uname진행 중인 모든 작업을 나열하기 위해 달려갔습니다.

PID TTY         TIME CMD
 14172 pts/1       0:00 ps
 12939 ?           0:00 sshd
 12904 ?           0:01 sshd
 13132 pts/1       0:00 bash
 12945 pts/1       0:00 sh
 12897 ?           0:00 sshd

이제 죽일 올바른 PID를 어떻게 찾을 수 있습니까?

답변1

다음을 사용하는 것도 고려할 수 있습니다.

pgrep "you_script"

또는

pgrep -f "complete_cmd_line_of_script"

"process-grep"은 PID만 결과로 나타냅니다.

찾은 프로세스를 종료하려면 pgrep과 동일한 구문을 사용하는 pkill을 사용할 수도 있습니다.

답변2

ps aux | grep "your_script_name.sh"

답변3

더 완전한 대답은 PID에만 관심이 있기 때문입니다.

ps aux | grep yourscript | grep -v grep | awk '{print $2}'

답변4

ps -aux

cron이것은 훌륭한 명령이지만 대부분의 작업은 완료되지 않았거나 "진행 중" 데몬이 있는 경우 다시 시작하도록 설정되어 있다는 점을 명심하십시오 .

관련 정보