我了解semaphores,但是我的 Linux 机器上使用的这些信号量数组是什么?
$ ipcs
------ Shared Memory Segments --------
key shmid owner perms bytes nattch status
0x00000000 327681 root 644 80 2
0x00000000 360450 root 644 16384 2
0x00000000 393219 root 644 280 2
...
------ Semaphore Arrays --------
key semid owner perms nsems
0x4172d4f4 290914305 lazer 660 104
0x3b87b970 291045378 lazer 660 104
0xa97eb380 293928963 lazer 660 104
0x1fde2040 294191108 lazer 660 104
------ Message Queues --------
key msqid owner perms used-bytes messages
$
Run Code Online (Sandbox Code Playgroud)
此外,他们保护哪些操作系统资源 …
我在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
Run Code Online (Sandbox Code Playgroud)
显然某些进程仍在使用它。但是, lsof 不显示任何内容。来自“ps -elf”的人也不清楚是谁在使用它。我怎样才能摆脱这个文件?
更新:我重新启动服务器,这当然杀死了所有进程,从而释放了文件。然后我可以删除它。但是,我仍然有兴趣知道如何在不重新启动的情况下执行此操作(在生产环境中,这并不总是一种选择)。