Назад | Перейти на главную страницу

Как убрать «дверь» в солярисе

У меня есть файл типа «дверь» в 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 [включить | отключить | перезапустить | обновить] службу

надеюсь, это поможет