프로세스가 실행 중인 명령이 무엇인지 어떻게 알 수 있나요?

프로세스가 실행 중인 명령이 무엇인지 어떻게 알 수 있나요?

서로 다른 시간에 백그라운드 프로세스로 실행되는 여러 명령이 있습니다.

wget -r url1 &
wget -r url2 &
..............
..............

결과는 --- ps -e라는 2개의 프로세스가 있음을 보여줍니다 .wget

     2552 ?        00:00:01 wget
     2576 ?        00:00:00 wget
     ......        .............
     ......        .............

이제 실행 프로세스를 종료하고 싶습니다 url2. 어떤 프로세스가 실행되고 있는지 어떻게 알 수 있나요 url?

답변1

-e명령에는 옵션 대신 옵션을 사용하십시오 .ps-f

user1    14298 13518  0 00:11 pts/1    00:00:00 sleep 100
user1    14299 13518  0 00:11 pts/1    00:00:00 sleep 50

이렇게 하면 명령에 전달된 매개변수도 볼 수 있습니다. 귀하의 경우에는 다른 URL입니다.

답변2

대화형 셸 설정에서 이 작업을 수행하는 경우 kill the second background job 을 사용할 수 있습니다 kill %2.

이 작업이 쉘 스크립트에서 수행되면 PID를 기록하고 신호를 보낼 수 있습니다.

#!/bin/bash
wget http://example.com/bigfile1 &
pid1=$!
wget http://example.com/biggerfile2 &
pid2=$!
# Time passes..
# Impatience intensifies...
kill $pid2

현재 세션의 전체 명령줄(및 환경)을 보려면 를 사용할 수 있습니다 ps ex.

관련 정보