Возможно, fdinfo
для fd часов может быть полезен:
$ readlink /proc/$(pgrep inotify)/fd/3
anon_inode:inotify
$ cat /proc/$(pgrep inotify)/fdinfo/3
pos: 0
flags: 00
mnt_id: 11
inotify wd:1 ino:357a sdev:700000 mask:fff ignored_mask:0 fhandle-bytes:8 fhandle-type:1 f_handle:7a35000000000000
sdev
кажется комбинацией старших :младших номеров устройств, как видно из выходных данных lsblk
, например:
$ lsblk | grep 7
loop0 7:0 0 80.5M 1 loop /snap/core/2462
(Я действительно наблюдал /snap/core/2462
.)
Для моего /dev/sda1
, то есть 8:1
, вывод выглядел так:
pos: 0
flags: 00
mnt_id: 11
inotify wd:1 ino:aae1b sdev:800001 mask:fff ignored_mask:0 fhandle-bytes:8 fhandle-type:1 f_handle:1bae0a0038e16969
Этого должно быть достаточно, чтобы выяснить, что блокирует размонтирование, даже если в списке нет конкретных отслеживаемых каталогов или файлов.
Не уверен, правильно ли я понимаю, что вы хотите, но вы можете перенаправить stderr и stdout в отдельные файлы:./myprogram 2>./stderr 1>./stdout
или в один и тот же файл:./myprogram >./logfile 2>&1