"텍스트 파일 사용 중" 오류를 의도적으로 발생시키는 방법은 무엇입니까?

"텍스트 파일 사용 중" 오류를 의도적으로 발생시키는 방법은 무엇입니까?

Linux 4.0.4 컴퓨터를 사용할 때 가끔 "텍스트 파일 사용 중" 오류가 발생합니다. 오류가 발생하면 커널이 "사용 중인" 파일에 대한 수정을 방지한다는 사실을 알게 되었습니다.

그래서 파일이 열려 있는지 확인한 다음(lsof에 나열된 대로) 파일을 수정했고 모든 것이 정상이었고 "텍스트 파일 사용 중" 오류가 발생하지 않았습니다.

그렇다면 오류를 발생시키는 방법은 무엇입니까?

답변1

"텍스트 파일 사용 중"은 프로세스가 런타임에 실행 파일을 수정하려고 시도하고 있음을 의미합니다. "텍스트"는 .text텍스트 파일이 아닌 세그먼트에 관한 것입니다. 트리거하려면 다음을 수행하십시오.

$ cp /usr/bin/yes .

$ ./yes >/dev/null &
[1] 27417

$ cat /dev/null >yes
-bash: yes: Text file busy

$ kill %1
[1]+  Terminated              ./yes > /dev/null

$ cat /dev/null >yes

$ ls -s yes
0 yes

관련 정보