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ファイルを使用してインストールしました。
ファイルがパッケージを介してインストールされた場合は、パッケージを削除できます。これにより、ファイルが削除されます。
ルートとして
pkgrm packagename
また、svcadmコマンドを使用してサービスを停止または再始動します。
ルートとして
svcadm [enable | disable | restart | refresh]サービス
これがお役に立てば幸いです