;-separated 복합 bash 명령 실행의 일부를 수정하거나 선제적으로 종료할 수 있습니까?

;-separated 복합 bash 명령 실행의 일부를 수정하거나 선제적으로 종료할 수 있습니까?

세미콜론으로 구분된 여러 bash 명령을 실행하고 있습니다.

% long-running-command-I-want ; another-command-I-dont

long-running-command-I-want아직 실행 중입니다. 당연히 pid아직은 없습니다 another-command-I-dont. 한동안 기다려온 another-command-I-dont을 죽이지 않고 선제적으로 죽이기/취소/실행방지를 하고 싶습니다 . long-running-command-I-want그렇게 할 수 있나요? 그렇다면 어떻게?

답변1

bash다른 쉘을 실행하면 계속하려는 프로그램을 실행 중인 PID를 찾을 수 있습니다 . 이것이라면 다음을 bashPID사용하여 인터럽트 신호를 보냅니다.

kill -2 bashPID

이렇게 하면 나머지 명령줄의 실행이 중지됩니다.

선택적으로 원래 셸에서 Ctrl-를 입력하여 z백그라운드에서 실행 중인 프로그램을 일시적으로 일시 중지할 수 있습니다. 이는 인터럽트 신호에 의해 플러시되는 나머지 명령줄에서도 계속됩니다. 그런 다음 포그라운드에서 계속할지 또는 백그라운드에서 계속할지 여부에 따라 fg또는 를 사용하여 실행 중인 프로그램을 재개할 수 있습니다 .bg

관련 정보