web-dev-qa-db-ja.com

Solarisの「ドア」を削除する方法

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」から、誰がこれを使用しているかも明らかではありません。どうすればこのファイルを取り除くことができますか?

更新:サーバーを再起動すると、もちろんすべてのプロセスが強制終了され、ファイルが解放されました。その後、それを削除することができます。しかし、それでも、再起動せずにこれを行う方法を知りたいと思います(実稼働環境では、それが常にオプションであるとは限りません)。

6
Isaac

Chroot内のマウントであることが判明したので、マウントを解除した後、削除できました。

0
Isaac

ファイルを設定またはインストールしたものを見つけるため。 rootとして、このコマンドを実行します。

pkgchk -l -p /files
  • コマンドで指定したファイルの作成に使用されたパッケージを示します。

pkgchk -l -p *path to file*/name_service_door

ファイルがパッケージとともに追加されていない場合、これは機能しません。たとえば、tarファイルを使用してインストールしました。

ファイルがパッケージを介してインストールされた場合は、パッケージを削除できます。これにより、ファイルが削除されます。

ルートとして

pkgrm packagename

また、svcadmコマンドを使用してサービスを停止または再始動します。

ルートとして

svcadm [enable | disable | restart | refresh]サービス

これがお役に立てば幸いです

0
Cyberninja