백그라운드에서 명령을 실행하고 화면에 인쇄하지 않고 파일로 출력 인쇄

백그라운드에서 명령을 실행하고 화면에 인쇄하지 않고 파일로 출력 인쇄

백그라운드에서 무언가를 실행하고 파일로 인쇄하고 싶다고 가정해 보겠습니다. 그러나 다음을 수행해도 여전히 화면에 인쇄됩니다. 이유를 아는 사람이 있습니까? 나는 무엇을 해야 합니까? 감사해요.

./mc.x & 2>&1 > test.out  
wait

답변1

다음과 같이 배경을 마지막에 넣습니다.

./mc.x 2>&1 > test.out &

참고: 2>&1을 사용하면 stderr이 stdout이 있는 위치(즉, 디스플레이 및 어쨌든 이동하는 위치)로 이동하게 되므로 리디렉션이 효과가 없습니다. 그런 다음 stdout은 test.out 파일로 이동합니다. 순서를 바꾸면 모든 stderr+stdout이 test.out 파일로 이동하게 됩니다.

답변2

먼저 사용하려는 구문은 다음과 같아야 합니다.

./mc.x > test.out 2>&1

&사용하려는 명령의 추가 내용을 기록해 두십시오. 예, 이렇게 하면 프로그램을 백그라운드로 보낼 수 없습니다.

nohup원하는 것을 달성하기 위한 간략한 요약 :

nohup 2>&1 ./mx.c &

이렇게 하면 프로그램이 터미널을 중단하지 않고 두 stdout터미널 stderrnohup.out.

관련 정보