To use CRUD you must first be running the CRUD Gremlin "crudg". This process manges all shared FIFO objects which each process uses to talk to each other effectively and with low latency. Local communication does not go through crudg, but rather crudg provides a mechanism for CRUD programs to register themselves, locally and on the network. The network side of communication does however pass through crudg.
The use shared memory and semaphores under Linux is weird. The wrapper class for global semaphores and shared memory uses the System V calls and as a result tends to leave shared memory objects and semaphore objects etc lying around. If your program crashes (or crudg), chances are it did not clean up properly and will leave behind a few of these. The script "crudgclear" will clean up any likely candidates, and also remove any temporary files in "/tmp" used as access handles.
Global mutexes are implemented using file locks, so also tends to leave around temporary files in "/tmp" also.
Hopefully at some point a better arrangement can be employed or Linux will fully support all POSIX varieties of shared objects.