以root身份试试这个(也许你可以使用sudo或su):
/etc/init.d/postgresql restart
在没有任何参数的情况下,脚本还会提示您如何重新启动特定版本
[Uqbar@Feynman ~] /etc/init.d/postgresql
Usage: /etc/init.d/postgresql {start|stop|restart|reload|force-reload|status} [version ...]
同样,如果您have it,您也可以使用service 工具:
[Uqbar@Feynman ~] service postgresql
Usage: /etc/init.d/postgresql {start|stop|restart|reload|force reload|status} [version ...]
请注意可选的[version ...] 尾随参数。
这意味着允许您(用户)对特定版本采取行动,以防您运行多个版本。因此,您可以重新启动版本 X,同时保持版本 Y 和 Z 不变并运行。
最后,如果你正在运行systemd,那么你可以像这样使用systemctl:
[Uqbar@Feynman ~] systemctl status postgresql
● postgresql.service - PostgreSQL database server
Loaded: loaded (/usr/lib/systemd/system/postgresql.service; enabled; vendor preset: disabled)
Active: active (running) since Wed 2017-11-14 12:33:35 CET; 7min ago
...
您可以将status 替换为stop、start 或restart 以及其他操作。详情请参阅documentation。
为了对多个并发版本进行操作,语法略有不同。例如 stop v12 和 reload v13 你可以运行:
systemctl stop postgresql-12.service
systemctl reload postgresql-13.service
感谢@Jojo 将我指向这个。
最后请记住,与前面看到的其他情况一样,非信息性任务可能需要root 权限。