백그라운드에서 출력또한 없이 실행하여라..

Seven..의 이미지

abc 라는 프로그램을 실행할 때

./abc & 하면 백그라운드로 넘어가고 --(1)
./abc &> abc.txt 하면 모든 출력이 abc.txt로 저장되잖아요? --(2)

그런데 (2) 같이 하면 콘솔이 돌아오지 않고....그니까..

쉘이 안뜨는 상태가 되고요..

모든 출력을 abc.txt로 넣으면서 콘솔도 돌아오게..즉 백그라운드에서
돌리려면 어떻게 하면 될까요?

다른 프로그램 실행시 system("") 함수를 사용해서 실행하려고 하는데..

아 그리구요..

&>abc.txt 이런 옵션을 줬을 때..

평소와 똑같이 출력이 저장되나요?

평소에 화면에 뿌리던것과는 다르게 저장이 되서...

main 함수 시작부분에..
실행합니다. 어쩌구 저쩌구 이런걸 뿌리는 부분이 있는데

자꾸 그게 주기적으로 저장이 되서 이상하네요 ..ㄱ

File attachments: 
첨부파일 크기
파일 local.h444바이트
파일 client.cpp1.77 KB
파일 server.cpp2.37 KB
Seven..의 이미지

출력을 포그라운드로 했을 시 뿌리는 화면입니다.

Quote:
Server Start : Fri Apr 9 00:54:55 2004

To Terminate Server Input [C_c]
+New Process Created. PID : 1648
+New Process Created. PID : 1649
Command : ls
From PID : 1644
-Child Process Done. PID : 1649
Command : find /usr
From PID : 1646
-Child Process Done. PID : 1648

&> 를 사용했을 시 뿌리는 아니.. 저장되는 txt입니다.

Quote:
Server Start : Fri Apr 9 01:00:53 2004

To Terminate Server Input [C_c]
+New Process Created. PID : 1690
Command : ls
From PID : 1684
-Child Process Done. PID : 1690
Server Start : Fri Apr 9 01:00:53 2004

To Terminate Server Input [C_c]
+New Process Created. PID : 1688
Command : find /usr/lib
From PID : 1686
-Child Process Done. PID : 1688
Server Start : Fri Apr 9 01:00:53 2004

To Terminate Server Input [C_c]

뭐 숫자나 그런 건 말고요 하여간

왜자꾸 저 Server Start가저장되는지 모르겠네요...ㄱ

시작부분에 system("clear");
이것 때문일까요?

VENI VIDI VICI

mach의 이미지

질문이 에메합니다.
원하는게 뭔지 모르겠네요.

------------------ P.S. --------------
지식은 오픈해서 검증받아야 산지식이된다고 동네 아저씨가 그러더라.

tinywolf의 이미지

음..

./abc > abc.txt &

이게 아닐까요? 물론 저도 모르는 문제입니다만.. 샤샤삭~(튄다.)

ㅡ_ㅡ;

Prentice의 이미지

셸에서 하시려면 다음과 같은 방법이 존재합니다.

nohup command

예를 들어 nohup ls 해보세요. 자세한 것은 man nohup.

nohup 소스를 보시면 도움이 되겠죠.

Seven..의 이미지

질문이애매했군요;; 두가지질문이었는데요^^;;
처음 질문은 이겁니다.

프로그램을 백그라운드에서돌리면 바로 쉘이 돌아오잖아요..

Quote:
[chyunsoo@localhost os]$ ./server &
[2] 1468
[chyunsoo@localhost os]$

그런데 백그라운드로 출력을 보내면
(이명령은 러닝 리눅스에서 본건데요..)

Quote:
[chyunsoo@localhost os]# ./server &> server_error.txt



이렇게 쉘이 돌아오지 않습니다.

백그라운드에서돌리면서 출력을 다른 파일로 저장하고 싶다면

어떻게 해야할까요? 가 1번 질문이구요

출력을 저장하면;;

포그라운드에서실행 할때와 출력 내용이다르다는게 2번 질문이었네요^^

콘솔에서 man 한글이안나와서 설명을 못보고 있어요 nohup T_T

VENI VIDI VICI

s9204의 이미지

이렇게하면 되지않을까요?

]# nohup ./sever > abc.txt &

이렇게하면 백그라운드로 실행되면서 abc.txt에 표준출력이 저장되죠.
다시 포그라운드로 가고 싶으시면

]# fg

screen이란것을 쓰면 더 좋다고 하는데.. . 그건 안써봐서 패쓰 -_-;

shs0917의 이미지

표준출력으로 결과를 계속 뿌려주는 프로그램일 경우..

program_name > log file_name &

이렇게 해주면 백그라운드에서 계속 지정한 파일로 쓰면서 실행되죠..

계속하다보면.. log file크기가 끝도 없이 늘어나는 문제가..ㅡㅡㅋ

원하는게 이게 맞으신가요?

컴퓨터가 이해할수 있는 코드는 어느 바보나 다 작성할 수 있다. 좋은 프로그래머는 사람이 이해할 수 있는 코드를 짠다 - 마틴파울러

wafe의 이미지

chyunsoo wrote:
그런데 백그라운드로 출력을 보내면
(이명령은 러닝 리눅스에서 본건데요..)

Quote:
[chyunsoo@localhost os]# ./server &> server_error.txt



이렇게 쉘이 돌아오지 않습니다.

말씀하신 명령은 백그라운드로 돌리는게 아니라, ./server의 stdout과 stderr를 모두 server_error.txt로 저장하라는 의미의 redirection 입니다(bash 쉘인 경우).

Heejoon Lee

Seven..의 이미지

감사합니다 ^^;
뒤에 &를 써줘야하는거군요 ㅠ.ㅜ

& &> 이렇게 했더니에러가나서;; -_-\

머리가 나쁘면 평생고생을;;

근데 왜 시작하고 뿌려주는 로그가

계속 반복이될까요?

정상 실행 - 포그라운드 출력- 에서 나오지 않는 현상이
로그를 기록하면 나오니 너무 이상해요 -0- 당황스럽고;;
답답하네요^^;

너무궁금합니다.

Start Server..이 부문은
시작하고 메인함수 맨 앞쪽에 있는 것들인데..
그렇다고 시간이 같은걸 보면.. 한번 저장된 정보가 계속
뿌려지는 것 같은데요..

첨부를 올려봅니다

server를 실행하고client에서 ls 등의 명령을 돌려주는 프로그램인데요
메인 함수에서 한번 호출된 printf가 반복되니 너무너무 궁금해요 ㅠ.ㅜ

댓글 첨부 파일: 
첨부파일 크기
파일 0바이트
파일 0바이트
파일 0바이트

VENI VIDI VICI

tinywolf의 이미지

아마도.. stdout과 stderr 두곳으로 같은 메세지를 보내기 때문에..

&>하면 두가지 출력을 한 파일에 저장하니까 그런것 아닐까요...

라고 말하면서 슬금슬금 튄다.. (샤샤삭)

ㅡ_ㅡ;

jemiro의 이미지

흠흠 걍 이렇게 하면 되는건데...요..

./abc &> abc.txt &

chyunsoo wrote:
abc 라는 프로그램을 실행할 때

./abc & 하면 백그라운드로 넘어가고 --(1)
./abc &> abc.txt 하면 모든 출력이 abc.txt로 저장되잖아요? --(2)

그런데 (2) 같이 하면 콘솔이 돌아오지 않고....그니까..

쉘이 안뜨는 상태가 되고요..

모든 출력을 abc.txt로 넣으면서 콘솔도 돌아오게..즉 백그라운드에서
돌리려면 어떻게 하면 될까요?

다른 프로그램 실행시 system("") 함수를 사용해서 실행하려고 하는데..

아 그리구요..

&>abc.txt 이런 옵션을 줬을 때..

평소와 똑같이 출력이 저장되나요?

평소에 화면에 뿌리던것과는 다르게 저장이 되서...

main 함수 시작부분에..
실행합니다. 어쩌구 저쩌구 이런걸 뿌리는 부분이 있는데

자꾸 그게 주기적으로 저장이 되서 이상하네요 ..ㄱ

Seven..의 이미지

stdout 과 stderr를 다른곳으로 보내도 마찬가지에요;;

main()
{
	printf("Start\n");

	while(1)
	{
		...
		pid=fork();
		if(pid==0)
		{
			printf("CHILD\n");
			exit(0);
		}
	...
	}
}

개요를 보면 저런 프로그램인데요.. -0-
Stdout을 파일로 보내면..

Quote:
Start
CHILD
Start
CHILD

이렇게 나오고

Stdout을 그냥 출력하면

Quote:
Start
CHILD
CHILD
CHILD

이렇게 잘 나오거든요 -_- 이해가 안되네요 ㅠ.,ㅜ
해결 방법이 없을까요?

VENI VIDI VICI

댓글 달기

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