Xshell 게시판

프로그램 종료시 백그라운드 작업도 사라집니다.

최종입력: 2006-06-28 18:38 - 넷사랑 | 답글: 1건

 
2006-06-28 17:37 - 나그네

프로그램 종료시 백그라운드 작업도 사라집니다.

 
안녕하세요?

xshell 2.0 을 이용하여 리눅스 서버에 접속하여 백그라운드 작업을 수행시켰습니다.

linux 서버 커맨드에서 exit 로 빠져나온 경우에는 백그라운드
작업이 정상적으로 수행이 됩니다.

그런데 새로운 xshell 창을 열어서 동일 리눅스 서버에 접속한
후에 백그라운드 작업을 수행시켰습니다. 그리고 윈도우 창의 프로그램 종료 버튼(x) 를 눌러서 종료되는 경우에는 해당 백그라운드 작업이 같이 사라지는 현상이 발생합니다.

백그라운드 작업을 수행시켰으므로 xshell 윈도우 창이 종료되어도 그대로 수행되어야 할 것 같은데, 같이 종료되어 버리니
이상합니다. 같은 TTY를 사용하는 프로세스들이 모두 kill 되어
버리는 것 같은데.... 옵션에 이것을 방지하는 부분이 있나요?
2006-06-28 18:38 - 넷사랑

Re: 프로그램 종료시 백그라운드 작업도 사라집니다.

 
안녕하십니까?
넷사랑컴퓨터 기술지원입니다.

콘솔에서의 로그인과 Xshell을 이용한 원격에서의 로그인은 성격이 약간 다릅니다. 간단한 차이는 콘솔은 터미널이지만 Xshell을 이용한 접속은 가상터미널(터미널에뮬레이터)이 됩니다.

원격에서는 telnet이나 ssh를 이용해야 하므로 Xshell에서 실행되는 프로그램은 이런 상위 프로세스의 자식 프로세스가 됩니다. 이럴 경우 Xshell을 종료하면 그 자식 프로그램의 상위 프로그램이 종료되므로 백그라운드로 돌린 자식 프로세스는 종료되게 됩니다. 이는 유닉스 프로그램의 기본 구동방식이므로 터미널에뮬레이터에서 어떤 옵션으로 처리할 수 있는 부분이 아닙니다.

이럴 경우를 위해서 nohup이라는 명령이 있습니다. nohup로 명령을 실행 시키면 nohup으로 실행되는 명령은 init이 상위 프로세스가 되어 Xshell 등을 종료하여도 계속하여 남게 됩니다.

$nohup 명령어 &

자세한 사항은 nohup의 manpage를 참조해 보십시오.

감사합니다.