자바로 만든 프로그램을 리눅스상에서 백그라운드 모드로 돌리게

vudghkzm의 이미지

리눅스나 유닉스에서 포어그라운드로 짠 프로그램도 실행할 때 명령줄 끝에 & 를 붙이면 백그라운드 모드로 실행되는 것으로 알고 있습니다.

그런데 그렇게 하지 않아도 자연스레 백그라운드 모드로 실행되도록 하게 할려면 어떻게 해야 하나요?

현재 자바로 멀티 쓰레드 프로그램을 만들고 있습니다. 제가 구현하고 싶은 것은 멀티 쓰레드 모드로 들어가기 전까지는 그냥 포어그라운드 모드로 진행되도록 하고 싶고, 멀티 쓰레드 모드로 들어간 후에는 백그라운드 모드로 진행되도록 하고 싶습니다. 멀티 쓰레드 모드가 되기 전에 무조건 포어그라운드로 프로그램이 진행되어야 하는데, 그 이유는 도중에 에러가 나게 되면 콘솔에 에러 메세지를 찍어서 사용자에게 보여줘야 하기 때문입니다. 멀티 쓰레드 모드가 된 이후에는 파일에다 로그를 기록해야 하기 때문에 괜찮습니다.

이와 같은 경우 어떻게 하면 되나요?

litdream의 이미지

일반적인 서버 프로그램들을 한번 생각해보시면, 첫번째 절차( 포그라운드 ) 에서의
출력을 꼭 stdout 이나 stderr 을 고집하실 필요가 없으실겁니다.
그런것들도 syslog 등으로 log 로 밀어내 버리시고, 애시당초 백그라운드로 돌려
버리는것이 더 낫지 않을까 생각됩니다.

데몬 프로세스를 만드는 방법은 많이 찾으실수 있으실겁니다.
간략하게 설명드리면, child 가 돌아갈 부모를 잃게되면, init 프로세스로 귀속됩니다.
이것을 이용해서, fork() 한 후, parent 는 곧장 exit 하는것이 기본이라 하겠습니다.
한번 고려해보세요.

삽질의 대마왕...

atie의 이미지

무슨 뜻으로 백그라운드 모드라고 하셨는지 이해가 잘 안가는데, 커맨드 라인 인터페이스는 쓰레드를 하나 뽑아 간단히 원하는 명령만 구현을 해서 동작이 되는 메인을 조종할 수 있습니다. 그리고, 이야기하신 것처럼 로그 때문에 그런 생각을 하시는 것이라면 log4j를 써서 화면과 파일에 동시에 로그를 남기는 것이 간단할 듯 합니다.

----
I paint objects as I think them, not as I see them.
atie's minipage

익명 사용자의 이미지

그냥 nohup 으로 띄우시면 파일로 출력이 리다이렉션 될텐데...

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.