सेमाफोर और साझा मेमोरी से निपटने में मेरा एकमात्र अनुभव कमांड के उपयोग के माध्यम से है ipcs। पर एक नजर डालें IPCS आदमी पेज अधिक जानकारी के लिए।
यह कमांड आपको दिखाती है कि किन प्रक्रियाओं में अर्धवृत्त होते हैं:
$ ipcs -s
------ Semaphore Arrays --------
key semid owner perms nsems
0x4d114854 65536 saml 600 8
ज्ञात वीर्य के साथ हम PIDs के बारे में अतिरिक्त जानकारी के लिए क्वेरी कर सकते हैं जिनके पास semaphores (ध्यान दें कि 8 - nsems) हैं:
$ ipcs -s -i 65536
Semaphore Array semid=65536
uid=500 gid=501 cuid=500 cgid=501
mode=0600, access_perms=0600
nsems = 8
otime = Sun May 12 14:44:53 2013
ctime = Wed May 8 22:12:15 2013
semnum value ncount zcount pid
0 1 0 0 0
1 1 0 0 0
2 1 0 0 2265
3 1 0 0 2265
4 1 0 0 0
5 1 0 0 0
6 1 0 0 4390
7 1 0 0 4390
पिड कॉलम ये प्रक्रियाएं हैं। आप या तो का उपयोग कर उन्हें देख सकते हैं psया के माध्यम से देखो /proc, फ़ाइल-प्रणाली /proc/<pid>।
उदाहरण के लिए:
$ more /proc/2265/cmdline
mono
POSIX और SystemV
@Lgeorget द्वारा छोड़ी गई एक टिप्पणी के निर्माण को मैंने अपने PID 2265 की /proc/2265/mapसामग्री में खोदा और निम्नलिखित /dev/shmसंदर्भ पाया:
$ grep shm /proc/2265/maps
7fa38e7f6000-7fa38ebdf000 rw-s 00000000 00:11 18517 /dev/shm/mono-shared-500-shared_fileshare-grinchy-Linux-x86_64-40-12-0
7fa38f0ca000-7fa38f0cb000 rw-s 00000000 00:11 18137 /dev/shm/mono.2265
7fa3967be000-7fa3967d3000 rw-s 00000000 00:11 18516 /dev/shm/mono-shared-500-shared_data-grinchy-Linux-x86_64-328-12-0
/proc/PID/maps, आप किसी प्रक्रिया की मेमोरी मैपिंग देख सकते हैं और POSIX semaphores में संलग्न फाइलों के रूप में दिखा सकते हैं/dev/shm। मैं हालांकि SysV सेमाफोर के बारे में निश्चित नहीं हूं।