SecurtCRT를 닫으면 실행중인 명령도 종료하는 이유는???
글쓴이: jwy22 / 작성시간: 금, 2006/12/22 - 3:02오후
안녕하세요.
예전에는 리눅스 시스템에서 백그라운드로 실행 시켰을때 항상 작동중이였는데...
어제부터인가 윈도우에서 접속한 SecurtCRT를 종료하면 실행중인 프로그램이 종료해 버립니다.
왜그런가요???
백그라운드로 실행 시켰는데도 속썩입니다. ㅡ.ㅡ;;
SecurtCRT 설정탓일까요?? 서버 탓일까요??
Forums:
예전이 그랬다면
예전이 그랬다면 예전이 비정상입니다.
man nohup 해보세요.
터미널이 종료되면 프로그램도 종료되는게 맞습니다.
터미널이 종료되면 프로그램도 종료되는게 맞습니다.
접속을 끊어도 계속 실행되게 하려면 맨 앞에 nohup 을 붙여서 실행해보시길..
대충 뭐 이런식이 되겠지요.
nohup wget http://xxx.yyy.co.kr/file.doc &
답변
답변 감사합니다.
아...예전이 비정상...이였군요.
윈도우xp에서 접속해서 리눅스 백그라운드로 실행시킨건데....
같은 윈도우에서 또다른 CRT 창을 열고 백그라운드 실행 프로그램을 찾으면 안나오네요. ㅡ.ㅡ;;
고수의 길은 멀고도 험난하군요.
내손안에는 아직 비장의 무기가 남아 있다.
그것은 희망이다.
-나폴레옹-
내손안에는 아직 비장의 무기가 남아 있다.
그것은 희망이다.
-나폴레옹-
screen 추천 emerge money
screen 추천
emerge money
https://xenosi.de/
nohup / screen
백그라운드는 쉘에서 안보인다 뿐이지, 쉘과 상관없이 돌아가는 것이 아닙니다.
쉘이 프로그램을 생성시켜준 것이고, 쉘이 종료되면 (연결이 끊기면) 쉘의 하위 프로세스도 종료됩니다. 이 때 시그널을 보내게 되는데, 이를 무시하게 만들면 쉘의 종료 여부와 상관없이 돌아가게 되겠지요.
바로 nohup이 그걸 해줍니다.
반면, screen은 터미널 자체를 에뮬레이트해서 보존해줍니다. 해당 터미널에 실행되고 있는 쉘이 종료되지 않게 되는 것이지요. 써보시면 매우 편리합니다. 강력 추천!
screen 은 보안 문제
screen 은 보안 문제 때문에 제거해야 할 패키지 목록 상위에 랭크되어 있었습니다.
오래 전 일이기는 합니다. 그래도 그 바닥에서 꽤 유명했던 놈이라 별로 정이 가진 않습니다.
실제로... 저도 악용한 적이 있거든요.
bash 라면 제대로 작동합니다.
bash 나 tcsh 의 경우, 프로세스를 백그라운드로 돌리고 쉘을 "정상 종료"하면 로그아웃 후에도 계속 돌아갑니다. 저도 예전에 제가 알고있던 거랑 실제 동작이 달라서 찾아본 기억이 있네요.
자세한 내용은 아래 링크를 참고해주시길 바랍니다.
http://www.cygwin.com/ml/cygwin/1998-04/msg00413.html
링크를 클릭하기 귀찮으신 분들을 위해 대충 저 글의 내용을 설명하자면, bash 의 경우 백그라운드 프로세스들이 쉘과 다른 프로세스 그룹에 있고 따라서 parent 인 쉘이 포워딩해주지 않는한 OS 로부터 직접적으로 SIGHUP 을 받지 않는다고 합니다. 따라서 쉘이 "정상 종료"하면 SIGHUP 을 parent 인 쉘이 포워딩 하지 못하기 때문에 이런 동작을 한다고 하네요. 물론 SIGHUP 이 발생해서 쉘이 종료되는 경우에는 정상적으로 포워딩 된다고 합니다.
그리고 제가 직접 테스트해본 결과로는 bash 쉘에서 exit 로 종료하든 PuTTY 를 강제 종료하든 백그라운드 프로세스가 계속 돌아가더군요. PuTTY 를 강제 종료했을 때 어떤 시그널이 발생하는지를 테스트 해봐야 정확히 알 수 있을거 같습니다.
bash(3.1) 은 job 이
bash(3.1) 은 job 이 있는데도 "정상종료" 가 되는군요.
zsh 는 job 이 있다는 경고를 보여주고, 또 시도하면 SIGHUP 날린 후에 종료됩니다.
댓글 달기