백그라운드에서 무언가를 실행하고 파일로 인쇄하고 싶다고 가정해 보겠습니다. 그러나 다음을 수행해도 여전히 화면에 인쇄됩니다. 이유를 아는 사람이 있습니까? 나는 무엇을 해야 합니까? 감사해요.
./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
터미널 stderr
을 nohup.out
.