厌倦了每次重新启动后创建 /run/postgresql 并设置读取和执行写入

rus*_*ins 4 linux postgresql archlinux

我正在运行 Arch Linux,我像其他任何 arch 软件包一样安装了 PostgreSQL。我正在使用位于我的用户目录中的本地数据库运行 postgres。( postgres -D /home/user/data/) 当我这样做时,我收到错误FATAL: could not create lock file "/run/postgresql/.s.PGSQL.5432.lock": No such file or directory。创建目录 /run/postgresql 并授予 postgres 用户访问权限可以解决此问题

$ sudo mkdir /run/postgresql
$ sudo chmod a+w /run/postgresql
Run Code Online (Sandbox Code Playgroud)

但是我厌倦了每次重新启动时都编写这些命令,因为重新启动时 /run 会被清除。我可以编写一个脚本来执行这些命令,但我觉得我一开始就以错误的方式这样做。有什么方法可以让 postgres 自己创建它的目录,或者让它不首先使用 /run/postgres 作为它的锁定文件?

alv*_*its 5

/run/postgresqlPostgres默认创建锁定文件。

从联机帮助页:

  -k directory
          Specifies the directory of the Unix-domain socket on which postgres is
          to listen for connections from client applications. The default  is
          normally  /run/postgresql, but can be changed at build time.
Run Code Online (Sandbox Code Playgroud)

用于-k directory告诉 postgres 使用不同的目录。

将命令运行为postgres -k /tmp -D /home/user/data/.