![Linux에서 fg 명령이나 Ctrl+Z를 사용하지 않고 작업을 중지, 일시 중지 또는 중단하는 방법은 무엇입니까? [복사]](https://linux55.com/image/206379/Linux%EC%97%90%EC%84%9C%20fg%20%EB%AA%85%EB%A0%B9%EC%9D%B4%EB%82%98%20Ctrl%2BZ%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%A7%80%20%EC%95%8A%EA%B3%A0%20%EC%9E%91%EC%97%85%EC%9D%84%20%EC%A4%91%EC%A7%80%2C%20%EC%9D%BC%EC%8B%9C%20%EC%A4%91%EC%A7%80%20%EB%98%90%EB%8A%94%20%EC%A4%91%EB%8B%A8%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F%20%5B%EB%B3%B5%EC%82%AC%5D.png)
답변1
표시된 그래픽은 jobs
명령의 출력입니다(글꼴은 실제 터미널에서 나올 수 없으므로 인쇄용으로 기록됨).
forever
(무한 루프가 필요하며 sleep 10
100% CPU 사용량을 피하기 위해 삽입이 필요함) 라는 스크립트가 있다고 가정해 보겠습니다 .
그런 다음 모두 셸에서 실행되는 6개의 작업을 시작 forever
하고다른쉘 창. 한 번에 하나의 포그라운드 명령만 가질 수 있으므로 작업 2를 시작하기 전에 작업 1을 일시 중지해야 하는 식입니다.
모든 작업 상태는 kill
프로세스 번호로 전송(사용)하는 다양한 SIG 코드와 관련되어 있습니다. 작업 번호는 첫 번째 셸에만 관련되어 있고 두 번째 셸에서 신호를 보내야 하기 때문에 프로세스 번호를 검색해야 합니다. 정기적으로 사용하면 pstree $PPID
도움이 될 수 있습니다.
작업 3은 백그라운드에 있고 나머지 5개 작업은 외부적으로 표시되지 않으므로 포그라운드 작업이 없으며 쉘 프롬프트가 다시 표시됩니다. 여기서 명령을 실행 jobs
하고 출력을 얻을 수 있습니다.
디스플레이 &
작업 3이 백그라운드에서 시작됩니다. 이는 -
.
+
쉘에서 출력되는 작업 상태 정보입니다.
편집: Bash에서는 이 작업을 수행할 수 없습니다. 나는 이것이 Bash가 프로세스 종료 상태를 요청하기 전에 적극적으로 수집하는 방식과 관련이 있다고 생각합니다. 나중에 다른 쉘을 시도해 보겠습니다.