하드 드라이브를 마운트 해제하고 여러 tmux 세션을 열려고 합니다.
$ sudo umount /mnt/PIHDD
umount: /mnt/PIHDD: target is busy
(In some cases useful info about processes that
use the device is found by lsof(8) or fuser(1).)
$ lsof /mnt/PIHDD/
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
tmux 1415 pi 36r DIR 8,1 20480 5 /mnt/PIHDD
$ ps 1415
PID TTY STAT TIME COMMAND
1415 ? Ss 17:26 tmux
어떤 tmux 세션을 봐야 하는지 어떻게 알 수 있나요? 아니면 다른 이유는 무엇인가요? 세션에 해당 드라이브의 현재 디렉터리가 있는 창이 포함되어 있다고 가정합니다.
모든 세션의 모든 포드를 수동으로 조사했지만 범인을 찾을 수 없었습니다.
https://superuser.com/a/212913/291007도움이 될 것 같지만 cat /proc/1415/environ
전혀 포함되어 있지 않습니다. ^TMUX=
하지만 ^@_=/usr/bin/tmux^@
.
이 답변예상 출력을 생성하지만 PID 1415를 포함하지 않습니다.
this 에 따르면 lsof -p 1415
프로세스에는 현재 한 세션의 디렉토리뿐만 아니라 tmux에서 연 모든 디렉토리가 있습니다. 이는 PID가 있는 스레드가 1415
실제로 tmux 자체임을 의미합니다. lsof
마운트 지점 dir 만 나열 /mnt/PIHDD
하고 그 안에 있는 파일은 나열하지 않는다는 점은 주목할 가치가 있습니다 .
흥미롭게도 ls /proc/1415/fd
관련 마운트 지점이 다른 드라이브와는 다른 색상으로 표시됩니다.
어쩌면 관련이 있을 수도 있습니다: 설치된 드라이브 /mnt/PIHDD
가 NTFS로 포맷되었습니다. 드라이브는 /mnt/oceanPortal
EXT-4입니다.
tmux가 내 하드 드라이브를 사용하는 이유와 이를 안전하게 중지하는 방법은 무엇입니까?
도움이 될 수 있는 추가 정보:
$ gdb -p 1415
(gdb) info proc
process 1415
cmdline = 'tmux'
cwd = '/home/pi'
exe = '/usr/bin/tmux'
원래 이 질문을 한 이후로 tmux를 다시 시작하면 해당 파일 설명자를 다시 얻을 수 있는지 확인하기 위해 실행 중인 raspi를 다시 시작했습니다. 이제 tmux
새 PID를 사용하는 프로세스 /mnt/PIHDD
에는 더 이상 /proc/{pid}/fd
.
이는 주어진 설명을 확인할 수 없음을 의미합니다. 반면에, 같은 문제가 있고 tmux를 다시 시작할 수 있는 사람이 있다면 시도해 보세요!
그럴 수도 있다파일 설명자 닫기문제 없이 작업할 수 있었습니다. 하지만 나는 여전히 지식이 풍부한 확인을 원합니다.tmux에 fd가 있는 이유를 설명하세요..
미래에 누군가에게 도움이 될 수 있는 관련 없는 정보:
- 원하지 않는다gdb를 tmux에 연결해 보세요tmux 내에서. 이렇게 하면 새 터미널/ssh 연결을 열고
kill -9
.gdb 에서 얻은 pid를 가져옵니다ps -ax | grep gdb
.