무한 루프 백그라운드 프로그램에 대해 도움좀 주세요~

goomba의 이미지

안녕하세요. 초보 프로그래머입니다.

이번에 백그라운드로 항상 돌아가면서 설정해둔

특정 시, 분, 초가 되면 어떠한 행동을 취하는 프로그램을 만들고 있습니다.

생각해본 소스는 다음과 같습니다

-----------------------------------------------
// 매일 10시 30분이 되면 특정 행동을 취하는 프로그램
struct tm *tm;
time_t t;
int hour, min, sec;

hour = 10;
min = 30;
sec = 0;

while(1)
{
time(&t);
tm = localtime(&t);

if (tm->tm_hour == hour && tm->tm_min == min && tm->tm_sec == sec)
{
// 소켓 통신 메시지 전송부
}
}
-----------------------------------------------

위 프로그램이 솔라리스 서버에서 돌아갈 소스인데

혹시 문제될 부분이있을까요?

아직 초짜라서 돌아가는 로직에 대해서 밖에 떠오르지 않고

예상되는 문제점이나 수정방안에 대해서는 딱히 떠오르지가 않네요..

보시고 저에게 도움될만한 말이나 개발 방향같은것좀 부탁드리겠습니다

감사합니다!!

rookey94의 이미지

도움이 될지 모르겠지만..
처음이라고 말씀하시니깐....

1. 위 프로그램을 백그라운드로 잘 돌릴수 있을지 여부(저도 처음엔 백그라운드로 돌리는 방법을 몰라서....하하하하.)
2. 시그널 처리를 추가해 주면 좋을듯하고요.
3. 프로그램이 돌때 CPU 점유율이 높아 질것 같은 느낌이.. 무한 루프는 항상 그게 걱정이죠...ㅠ.ㅠ

crontab을 활용하는 방법은 어떠실런지.....

그럼 홧팅하세요!!

goomba의 이미지

안녕하세요. 답변해주셔서 감사합니다.

돌려본 결과 백그라운드로는 잘 돌아가네요

또 시그널 추가 지금 생각중이구요

crontab의 경우 무엇인지 모르겠어서 한번 찾아보겠습니다!

감사합니다~

세벌의 이미지

man crontab

jick의 이미지

개인용 서버가 아닌한 이런 프로그램 짜서 돌리면 관리자한테 매우 혼날 것 같은데요...
crontab을 쓰시거나, 꼭 그 프로세스가 떠서 시간을 체크해야 한다면 남은 시간을 체크해서 sleep하세요.

IsExist의 이미지

루프 안에서 sleep 주세요. sleep 없으면 저거 cpu 엄청 잡아 먹습니다.

한가지 조언을 하자면 남은 시간을 계산해서 그 반타임만 sleep 하고
다시 깨어나서 남은 시간 체크하고 반 타임 sleep 하는걸로 해보세요.

sleep 1초도 그리 나쁜 선택은 아닙니다.

---------
간디가 말한 우리를 파괴시키는 7가지 요소

첫째, 노동 없는 부(富)/둘째, 양심 없는 쾌락
셋째, 인격 없는 지! 식/넷째, 윤리 없는 비지니스

이익추구를 위해서라면..

다섯째, 인성(人性)없는 과학
여섯째, 희생 없는 종교/일곱째, 신념 없는 정치

댓글 달기

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
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.