이 작업을 수행할 때 프로세스를 종료 tail -f filename
하지 않고 어떻게 모드를 종료합니까 ?Ctrl+c
내가 원하는 것은 q
.top
프로세스를 종료하는 것은 무언가를 종료하는 좋은 방법이 아니라고 생각하기 때문에 이 질문이 궁금합니다.
답변1
주석에서 말했듯 이 프로세스 Ctrl-C는 종료되지 않습니다 tail
. 이는 SIGTERM 또는 SIGKILL 신호(악명 높은 ...)를 전송하여 수행됩니다 . 전달 모드를 종료하고 종료하라는 -9
SIGINT를 전송합니다 .tail
참고로 더 나은 도구는 다음과 같습니다.
less +F filename
에서는 less
버튼을 눌러 Ctrl-C빨리 감기 모드를 종료하고 파일을 스크롤한 다음 F다시 누르면 빨리 감기 모드로 돌아갈 수 있습니다.
알아채다less +F
더 나은 대안으로 많은 사람들이 옹호tail -f
. 이 두 도구의 차이점과 고려 사항은 아래 답변을 읽어보세요.`tail -f`가 `less +F`보다 더 효율적인가요?
답변2
내가 원하는 것은 상단의 q와 같은 일반적인 종료 방법입니다.
그건 ControlC:)
프로세스를 종료하는 것은 무언가를 종료하는 좋은 방법이 아니라고 생각하기 때문에 이 질문이 궁금합니다.
^C
( ControlC) 보내다지능을 신호하다이 프로세스에서는 다음과 같이 정의됩니다.
사용자가 프로세스를 중단하려고 하면 프로세스를 제어하는 터미널이 SIGINT 신호를 프로세스로 보냅니다.
이것이 바로 당신이 여기서 하고 싶은 일입니다 tail
. Interrupt . 원하는 작업을 수행하는 다른 방법은 없으며("멋지게" 꼬리 종료) 다른 답변은 tail
다른 방법으로 중지할 수 있는 방법을 제공하지만 그다지 좋지는 않습니다.
Press는 ^C
Linux에서 작업을 중단하려고 시도합니다. 이것은 완전히 정상적인 현상입니다. 프로세스가 작업을 수행하고 있고 프로세스가 끝나도록 두지 않으면 "나쁜" 유일한 측면입니다. 효과는 프로세스에서 남은 것입니다. 프로세스. 예를 들어, ^C
명령 중간에 make
부분적으로 컴파일된 소프트웨어가 남아 있지만 괜찮습니다. 추가 실행을 make
통해 소프트웨어가 정리되거나 중단된 위치에서 다시 시작됩니다.
답변3
tail -f
Ctrl c파일 이름, 프로세스를 종료 하지 않고 모드를 종료하는 방법
당신은 그렇게 할 수 없습니다. 어쩌면 당신은 달리고 싶을 수도 있습니다tail -f somefile | less
Ctrl c신호는 tty 하위 시스템(및 쉘)에 의해 해석되고 전송됩니다( SIGINT
참조신호(7)그리고개인 유한 회사(7)...). 바라보다tty가 공개됐다.
답변4
기능이 있다고 가정 해 봅시다
function prll(){
.....
pkill -9 -x tail
}
함수에 따라 꼬리를 실행한다고 가정합니다.
tail -n 1 -f file |
pv -l > /dev/null |
prll file
echo !!done!!
결론적으로 답은 이렇습니다.
pkill -9 -x tail