stdbuf 또는 nohup의 실제 용도는 무엇입니까?

stdbuf 또는 nohup의 실제 용도는 무엇입니까?

지금 강좌에 대한 몇 가지 coreutils 명령 작성을 끝내야 하는데, 이를 설명할 작은 실제 코드 예제가 생각나지 않습니다 stdbuf. 누군가가 몇 가지 특정 UNIX 명령의 상호 작용을 수정하는 데 사용했습니까? 나는 그것이 무엇을 하는지 압니다. 가장 먼저 떠오르는 명령에는 자체 버퍼링 제어 기능이 있으며 일반 터미널 출력은 어쨌든 라인 버퍼링됩니다. 로그에 추가하는 데 인기가 많겠지만 이를 시연할 수 있는 좋은 명령을 찾을 수 없습니다.

의 경우 nohup중단을 방지하기 위해 일반적으로 실행되는 명령이 있습니까?

앞서 언급했듯이 저는 현재 강좌 과제를 위해 이 일을 하고 있습니다. 그러나 이는 해당 규칙을 위반하지 않습니다. 저는 단지 이러한 예를 위한 좋은 출발점을 찾으려고 노력하고 있을 뿐입니다. 나는 하나도 없고 stdbuf, 내가 사용하고 있는 기본 것도 마음에 들지 않습니다 nohup.

답변1

stdbuf 예는 다음과 같습니다.http://www.pixelbeat.org/programming/stdio_buffering/

nohup은 로그인 전반에 걸쳐 실행하려는 장기 실행 명령에 사용됩니다. screen(1)을 사용하거나 소급하여 screen +를 사용하여 이 작업을 수행할 수도 있습니다.https://github.com/nelhage/reptyr

답변2

없는 것부터 시작하겠습니다 . 차단되므로 stdbuf터미널이 2개 필요합니다 .tail -f

터미널 1

touch log_file1
tail -f log_file1 | cut -d " " -f 1 | uniq

터미널 2

echo "A 1" >> log_file1

터미널 1에는 출력이 표시되지 않습니다.

stdbuf다시 시도하고 터미널 1에 추가해 보겠습니다 .

touch log_file2
tail -f log_file2 | stdbuf -oL cut -d " " -f 1 | uniq

터미널 2

echo "A 1" >> log_file2

이번에는 A제1터미널에서 만나보실 수 있습니다.

답변3

이것은구체적인 예

stdbuf -oL ./a.out > log.txt   

인쇄 출력은 사용되는 경우 에만 stdbuf파일로 파이프될 수 있습니다 .

관련 정보