Linux와 커맨드 라인 기초

터미널에서 시간이 걸리는 ./sim.sh를 실행하는 도중에, 같은 터미널에서 다른 명령을 쓰고 싶어졌다. Ctrl+Z를 누른 후 bg를 실행했을 때의 동작으로 올바른 것은?

  1. ACtrl+Z로 sim.sh는 종료되고, bg를 실행하면 같은 명령이 처음부터 백그라운드에서 다시 실행된다
  2. BCtrl+Z로 sim.sh는 일시 정지하고, bg로 멈춘 곳부터 이어서 백그라운드에서 재개한다
  3. CCtrl+Z로 sim.sh는 백그라운드로 옮겨 실행을 계속하고, bg를 실행하면 일시 정지한다
정답과 해설 보기

정답: B. Ctrl+Z로 sim.sh는 일시 정지하고, bg로 멈춘 곳부터 이어서 백그라운드에서 재개한다

Ctrl+Z를 누르면 전면(포그라운드)에서 실행 중인 작업(job)에 SIGTSTP가 보내지고, 작업은 일시 정지합니다. bg는 그 작업에 실행 재개를 지시하여 백그라운드에서 계속하게 하고, fg는 포그라운드로 되돌립니다. 실행 중인 작업과 그 상태는 jobs로 확인할 수 있으며, 처음부터 백그라운드에서 실행할 때는 './sim.sh &'처럼 &를 붙여 시작합니다. 다만 터미널 접속이 끊기면 백그라운드 작업도 멈추는 경우가 있으므로, 긴 처리에는 별도의 대책이 필요합니다.

이 분야 연습하기 분야로 돌아가기

Linux와 커맨드 라인 기초의 다른 문제

  1. SSH로 접속한 서버에서 시간이 걸리는 처리를 './run.sh &'로 시작한 다음 접속을 끊었더니 처리도 멈춰 버렸다. 접속을 끊은 후에도 처리를 계속하게 하는 시작 방법으로 가장 적절한 것은?
  2. 위의 두 줄을 셸(shell)에서 실행했을 때 표시되는 문자로 올바른 것은?
  3. 위의 명령을 순서대로 실행했을 때, 두 echo의 출력으로 올바른 것은?
  4. 위와 같이 스크립트 s.sh를 인수를 붙여 실행했을 때의 출력으로 올바른 것은?
  5. 셸 스크립트에서 위의 if 조건이 참이 되는 경우로 올바른 것은?