"xsun" <xu2002261@163.com> writes:
> When the psql server is started under Linux platform, in /tmp directory
> there is a lock files named ".s.PGSQL.<port>.lock". So I want to know what
> is the function of this lock file?
It prevents multiple postmasters from trying to use the same socket file.
> And does the server work well without
> this lock file?
No. (Well, it will run, but you have no protection against accidentally
starting another postmaster on the same port number.)
> Additionally, I know that the file ".s.PGSQL.<port>" is used as the unix
> domain socket file. But the file ".s.PGSQL.<port>.lock" makes me still
> pazzled. Could you explain that? Thanks.
We can't portably lock the socket file itself, so we make a separate
ordinary file for locking purposes.
regards, tom lane