У меня есть файл типа «дверь» в solaris 10 (это средство межпроцессного взаимодействия). Это как-то осталось, и я бы хотел от него избавиться. Не могу просто удалить с помощью rm ...
ls -l
total 0
Dr--r--r-- 1 root root 0 Oct 12 2012 name_service_door
# rm name_service_door
rm: name_service_door not removed: Device busy
# lsof name_service_door
Очевидно, что какой-то процесс все еще его использует. Однако lsof ничего не отображает. Из «ps -elf» тоже не понятно, кто этим пользуется. Как мне избавиться от этого файла?
Обновление: я перезагрузил сервер, что, конечно, убило все процессы и, таким образом, освободило файл. Тогда я мог бы это удалить. Но все же мне было бы интересно узнать, как это сделать без перезагрузки (в производственных средах это не всегда вариант).
Оказалось, что это была монтировка внутри chroot, поэтому после размонтирования я мог ее удалить.
Чтобы узнать, какой установлен или установлен файл. Выполните эту команду как root.
pkgchk -l -p /files
пример
pkgchk -l -p *path to file*/name_service_door
Это не сработает, если файл не был добавлен в пакет. Например, вы установили его с помощью tar-файла.
Если файл был установлен с помощью пакета, вы можете удалить пакет, и это приведет к удалению файла.
Как root
pkgrm packagename
Вы также можете остановить или перезапустить службу с помощью команды svcadm.
Как root
svcadm [включить | отключить | перезапустить | обновить] службу
надеюсь, это поможет