리눅스(유닉스)에서는 telnet(ssh)으로 접속해서 원하는 작업을 백그라운드로 실행할 수 있다.
일시적으로 중지시킬 수도 있고, 다시 실행시키거나 죽일 수도 있다.
백그라운드로 실행하는 방법은 간단하게 두 가지가 있다.
- 백그라운드로 실행 시키기.
터미널에서 실행할 명령 입력 시 맨 마지막에 &(ampersand)를 붙이면 해당 작업이 시작될 때 백그라운드로 들어가서 실행된다.
cp ~/down/* . &
- 일시 중지 후 백그라운드로 전환하기.
터미널에서 명령을 입력해서 시작된 다음 실행하는 중에 ctrl-z를 눌러 작업을 일시 중지하고 bg 명령으로 해당 프로세스를 백그라운드로 전환한다.
cp ~/down/* .
실행 중 ctrl-z를 눌러 쉘로 빠져나온다. 이때 화면에 [1]+ Stopped cp ~/down/* . &가 표시된다. 대괄호 안에 있는 숫자를 아래에서 사용한다.
bg 1
이렇게 하면 위의 작업이 백그라운드로 실행되고 끝날 때까지 실행된다.
이렇게 백그라운드로 실행하면 사용자가 로그인해있는 동안 해당 명령이 끝날 때까지 계속 백그라운드로 실행된다.
그런데 로그아웃을 하면 그 사용자가 실행해서 백그라운드로 실행되던 프로세스까지 다 죽어버린다.
로그아웃하더라도 계속 실행되게 하려면 disown이라는 명령을 사용해서 작업의 소유권을 해제하면 된다.
disown
백그라운드 작업이 여러개라면 disown -a로 전체 작업의 소유권을 해제할 수도 있다.
disown -a
리눅스 telnet(ssh) 접속이 끊어져도 백그라운드 작업 계속하기