멈추지 않고 어떤 명령이 실행되고 있는지 아는 방법?


20

내 예에서는 실행하는 데 시간이 오래 걸리는 명령을 실행하고 있습니다 (몇 시간).

make 또는 make -j4를 입력했는지 실제로 기억하지 못합니다.

물론 중지하고 키를 누르거나 기록을 확인하여 프로세스를 중지 할 수는 있지만 프로세스가 중지되지는 않습니다 (이미 make -j4를 수행하는 경우).

프로세스를 멈추지 않고 어떤 명령이 실행되고 있는지 알 수있는 방법이 있습니까?


5
다른 터미널에서 시도pgrep -a make
John1024

2
이 경우 make중지했다가 다시 시작할 수 있으며 중단 된 부분을 선택해야합니다.
user253751

답변:


34

make컴퓨터에서 실행중인 모든 인스턴스에 대한 전체 명령 행을 보려면 새 터미널을 열고 다음을 시도하십시오.

pgrep -a make

pgrep컴퓨터의 모든 프로세스를 검색하는 프로그램입니다. 이 경우라는 프로그램을 찾고 있습니다 make. 이 옵션 -apgrep일치하는 각 프로세스에 대한 프로세스 ID와 전체 명령 줄을 모두 나열하도록 지시 합니다. (없이는 -a프로세스 ID 만 반환합니다.) pgrep의 많은 옵션에 대한 자세한 내용은을 참조하십시오 man pgrep.


7
이것은 질문과 같은 간단한 경우에 유용합니다. 그러나 명령에 파이프 라인, 루프, 명령 시퀀스, 내부 명령 또는 변수 확장 pgrep이 포함 된 경우 명령 줄에 입력 한 명령과 다르게 보일 수 있습니다.
kasperd December

28

터미널 창이 활성화되어있는 동안 Ctrl+ 를 눌러 프로세스를 일시 중지 (일시 정지) 할 수 있습니다 Z. 그런 다음 입력하여 백그라운드에서 작업을 푸시 할 수 있습니다 bg(이제 작업이 백그라운드에서 계속 진행되며 동시에 명령 행에서 작업 할 수 있습니다. 이는 명령 행 &끝에서 작업을 시작하는 것과 같습니다 ). 그런 다음 커서 화살표 (위와 아래)를 사용하여 사용한 명령을 확인하십시오. 원하는 경우 (필요하지는 않지만)를 입력하여 작업을 포 그라운드로 가져올 수 있습니다 fg.


7
이것은 일부 명령에서 작동하지만 전부는 아닙니다. 예를 들어 루프를 입력 for X in {1..1000} ; do sleep $X ; done한 경우 루프가 중단되고 나머지 반복은 발생하지 않습니다.
kasperd December

11
@kasperd 네, 물어 보면 상당히 성가 시지만 그 문제에 대한 멋진 해결책을 발견했습니다. 괄호 안에있는 것과 같은 복잡한 명령을 둘러싸면 서브 쉘입니다. 그런 다음 Ctrl-Z는 전체 서브 쉘을 일시 중단하고 올바르게 재개합니다.
penguin359

@kasperd bash에는 없지만 zsh에서는 수행합니다.
JoL

4
작업을 백그라운드에 넣을 필요가 없습니다. 작업을 일시 중지하고 기록을 확인하거나 ( jobs@ichabod의 답변에 표시된대로)을 통해 다시 시작하면됩니다 fg.
Konrad Rudolph

10

작업을 일시 중지하기 위해 Stefan : ^ Z와 같은 작업을 수행 한 다음 실행 jobs합니다. 여러 프로세스가 실행중인 경우 일시 중지 한 작업을 정렬해야 할 수도 있지만 일반적으로 명령 줄이 제공됩니다. 그런 다음 실행 fg을 계속하려면 실행하십시오.


1

이를 동적으로 확인하는 가장 좋은 방법은 맨 위를 실행하는 것이며 전체 시스템 상태와 시스템에서 실행중인 프로세스를 알려줍니다.

'ps ux'를 수행하면 pid 및 기타 정보와 함께 프로세스가 표시됩니다. 원하는 경우 스킬을 사용하여 프로세스 중 일부를 제거 할 수 있습니다.이 페이지는 좋은 리소스입니다. 장치 대기 등에 매달린 경우 -hup, 데몬 재시작 등의 다른 신호를 프로세스에 보낼 수도 있습니다.

Top은 프로세스 크기, 경과 시간 및 현재 CPU 상태와 메모리 및 스왑 상태를 보여주기 때문에 좋습니다.

나는 종종 make.out 로그 파일에서 $ make> & make.out & 그리고 less 또는 tail -f를 수행합니다. 지금부터 make는 쉘 세션에서 프로세스로 분리됩니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.