자바로 만든 프로그램을 리눅스상에서 백그라운드 모드로 돌리게
글쓴이: vudghkzm / 작성시간: 월, 2005/09/05 - 11:53오전
리눅스나 유닉스에서 포어그라운드로 짠 프로그램도 실행할 때 명령줄 끝에 & 를 붙이면 백그라운드 모드로 실행되는 것으로 알고 있습니다.
그런데 그렇게 하지 않아도 자연스레 백그라운드 모드로 실행되도록 하게 할려면 어떻게 해야 하나요?
현재 자바로 멀티 쓰레드 프로그램을 만들고 있습니다. 제가 구현하고 싶은 것은 멀티 쓰레드 모드로 들어가기 전까지는 그냥 포어그라운드 모드로 진행되도록 하고 싶고, 멀티 쓰레드 모드로 들어간 후에는 백그라운드 모드로 진행되도록 하고 싶습니다. 멀티 쓰레드 모드가 되기 전에 무조건 포어그라운드로 프로그램이 진행되어야 하는데, 그 이유는 도중에 에러가 나게 되면 콘솔에 에러 메세지를 찍어서 사용자에게 보여줘야 하기 때문입니다. 멀티 쓰레드 모드가 된 이후에는 파일에다 로그를 기록해야 하기 때문에 괜찮습니다.
이와 같은 경우 어떻게 하면 되나요?
Forums:
일반적인 서버 프로그램들을 한번 생각해보시면, 첫번째 절차( 포그라운드
일반적인 서버 프로그램들을 한번 생각해보시면, 첫번째 절차( 포그라운드 ) 에서의
출력을 꼭 stdout 이나 stderr 을 고집하실 필요가 없으실겁니다.
그런것들도 syslog 등으로 log 로 밀어내 버리시고, 애시당초 백그라운드로 돌려
버리는것이 더 낫지 않을까 생각됩니다.
데몬 프로세스를 만드는 방법은 많이 찾으실수 있으실겁니다.
간략하게 설명드리면, child 가 돌아갈 부모를 잃게되면, init 프로세스로 귀속됩니다.
이것을 이용해서, fork() 한 후, parent 는 곧장 exit 하는것이 기본이라 하겠습니다.
한번 고려해보세요.
삽질의 대마왕...
무슨 뜻으로 백그라운드 모드라고 하셨는지 이해가 잘 안가는데, 커맨드 라
무슨 뜻으로 백그라운드 모드라고 하셨는지 이해가 잘 안가는데, 커맨드 라인 인터페이스는 쓰레드를 하나 뽑아 간단히 원하는 명령만 구현을 해서 동작이 되는 메인을 조종할 수 있습니다. 그리고, 이야기하신 것처럼 로그 때문에 그런 생각을 하시는 것이라면 log4j를 써서 화면과 파일에 동시에 로그를 남기는 것이 간단할 듯 합니다.
----
I paint objects as I think them, not as I see them.
atie's minipage
?
그냥 nohup 으로 띄우시면 파일로 출력이 리다이렉션 될텐데...
댓글 달기