The command ipcs -m
will list memory used for inter-process communication, i.e. memory that is used by different processes to share data; this is commonly done when two processes need to pass data between them, because is more efficient than using a network socket or a named pipe; a typical usage scenario is a process connecting to a database running on the same machine, which seems to be exactly what is happening on your server.
Please note that in order to use shared memory, both processes need to do it explicitly; this is not something the OS does for them, it's a programming technique.
It's quite common for database servers to offer this connection option to its clients, exactly for those scenarios where both the client and the server are running on the same system; but why would f.e. Tomcat or Nginx (or any random program) want to use shared memory? To share what with who? They don't have any need for it. They are network servers which receive requests through network sockets.
TL;DR: you only see shared memory in use by PostgresSQL because it's the only program on your server which is using it.