지금 강좌에 대한 몇 가지 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터미널에서 만나보실 수 있습니다.