PostgreSQL 서버가 중지되지 않았습니다
Mac OS X 10.8.4에서 PostgreSQL에 약간의 문제가 있습니다. brew rm postgresql --force
postgres 서버가 실행되는 동안 실수로 그랬습니다 . 사용하여 설치 brew install postgresql
하고 실행 pg_ctl -D /usr/local/var/postgres start
하면 다음을 얻습니다.
pg_ctl: another server might be running; trying to start server anyway
server starting
FATAL: lock file "postmaster.pid" already exists
HINT: Is another postmaster (PID 752) running in data directory "/usr/local/var/postgres"?
"ps -ef | grep postgres"를 실행하면 다음과 같은 결과가 나타납니다.
501 752 235 0 12:42PM ?? 0:00.01 /usr/local/opt/postgresql/bin/postgres -D /usr/local/var/postgres -r /usr/local/var/postgres/server.log
501 754 752 0 12:42PM ?? 0:00.00 postgres: checkpointer process
501 755 752 0 12:42PM ?? 0:00.34 postgres: writer process
501 756 752 0 12:42PM ?? 0:00.02 postgres: wal writer process
501 757 752 0 12:42PM ?? 0:00.01 postgres: autovacuum launcher process
501 758 752 0 12:42PM ?? 0:00.01 postgres: stats collector process
501 945 452 0 12:58PM ttys000 0:00.00 grep postgres
서버를 pg_ctl stop -D /usr/local/var/postgres -m fast
부여하거나 다음 pg_ctl -D /usr/local/var/postgres stop -mi
을 얻습니다.
waiting for server to shut down........................................... Failed
pg_ctl: server does not shut down
편집하다
which pg_ctl
/usr/local/bin/pg_ctl
pg_ctl --version
pg_ctl (PostgreSQL) 9.2.4
요점 server.log
: https://gist.github.com/anonymous/6106182
같은 문제가 발생했습니다 pg_ctl: server does not shut down
. 또한 ps auxwww | grep postgres
postgres가 실행 중임을 표시하면서 pg_ctl -D /usr/local/var/postgres status
postgres가 실행 중임 을 보여줍니다. 내 Mac을 다시 시작해도 도움이되지 않을 사고가 다시 시작해도 문제가 해결되지 않았지만 SO Q / A를 계속 다음에 찾아야 할 사항 인 양조 문제를 알 수 있습니다.
생각에이 따라이 문제를 해결 한 다음 명령에 , 대한 유용한 블로그 게시물을 찾았 습니다.
$ brew services list
$ brew services restart postgresql
이것이 누군가를 도울 수 있기를 바랍니다.
업데이트-알 수없는 명령 : 서비스
주석 중 하나 ( '알 수없는 명령 : 서비스')에 따라 약간의 조사를 수행 한 후 Homebrew의 작성자 services
가이 코드를 유지하기를 제거하기로 결정했음을 알게되었습니다 .
여기 와 여기 에서 자세한 내용을 확인할 수 있습니다 (관련 github 티켓).
더 파고 좀 들자 맥에 추가 되는 이 저장소를 찾았습니다 services
.
이것이 내가 '돌아온'방법입니다 services
.
~ » brew tap gapple/services
~ » brew services
usage: [sudo] brew services [--help] <command> [<formula>]
Small wrapper around `launchctl` for supported formulae, commands available:
cleanup Get rid of stale services and unused plists
list List all services managed by `brew services`
restart Gracefully restart selected service
start Start selected service
stop Stop selected service
Options, sudo and paths:
sudo When run as root, operates on /Library/LaunchDaemons (run at boot!)
Run at boot: /Library/LaunchDaemons
Run at login: /Users/user/Library/LaunchAgents
다음은 또 다른 권장 솔루션입니다 : https://apple.stackexchange.com/questions/150300/need-help-using-homebrew-services-command . 직접 확인하지 작동 여부와 작동 방식을 알 수 없습니다.
$ brew services list
$ brew services stop postgresql
중지 postgresql
중이지만 time-이 걸릴 수 있음 → 성공적으로 중지됨 postgresql
(라벨 : homebrew.mxcl.postgresql)
신고 문제가 있습니다. 나는 며칠 전에 내가 '점심'을 통합했다는 것을 잊고 시작시 plist ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
를 시작하기 위해 launchctl 래퍼로 사용하고 있었다 . pg_ctl은 다음 코드 줄로 인해 어려움이 <key>KeepAlive<key>
있습니다.
<?xml version="1.0" encoding="UTF-8"?>
2 <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3 <plist version="1.0">
4 <dict>
5 <key>KeepAlive</key>
6 <true/>
7 <key>Label</key>
8 <string>homebrew.mxcl.postgresql</string>
9 <key>ProgramArguments</key>
10 <array>
11 <string>/usr/local/opt/postgresql/bin/postgres</string>
12 <string>-D</string>
13 <string>/usr/local/var/postgres</string>
14 <string>-r</string>
15 <string>/usr/local/var/postgres/server.log</string>
16 </array>
17 <key>RunAtLoad</key>
18 <true/>
19 <key>WorkingDirectory</key>
20 <string>/usr/local</string>
21 <key>StandardErrorPath</key>
22 <string>/usr/local/var/postgres/server.log</string>
23 </dict>
24 </plist>
plist를 언로드해야하고 때문에 프로세스를 직접 종료해도 작동하지 않습니다.
launchctl unload homebrew.mxcl.postgresql.plist
나는 똑같은 문제를 사용하고 있었다 ... 런치 에이전트를 제거하면 문제가 해결됩니다.
launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
rm ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
명령을 사용하여 하여이 오류가 발생했습니다.
pg_ctl stop -m immediate
pg_ctl start
이런 식으로 plist를 언로드 할 필요가 없습니다.
postgres에 대한 내 brew.plist를 ~ / Library / LaunchAgents /에서 언로드하고 제거해야한다는 것이 밝혀졌습니다. 다시 시작한 후에는 모든 것이 좋습니다. 마지막 질문입니다.
양조 설치된 PostgreSQL을 사용하는 경우 다음 명령을 사용하여 종료했습니다.
> brew services stop postgresql
stopping `postgresql`... (might take a while)
==> Successfully stopped `postgresql` (label: homebrew.mxcl.postgresql)
다른 답변에서 언급했듯이 프로세스 목록을 살펴보고 postgres 관련 항목을 죽이는 것은 작동 하지 않습니다 .
ps aux | grep postgres
kill $PID
참고 URL : https://stackoverflow.com/questions/17930167/postgresql-server-wont-stop
'ProgramingTip' 카테고리의 다른 글
C #에서 Null 매개 변수 검사 (0) | 2020.10.20 |
---|---|
점선 (0) | 2020.10.20 |
Java 9에서 sdkmanager --list (Android SDK) 실행 실패 (0) | 2020.10.20 |
ToString () 전에 null 확인 (0) | 2020.10.20 |
@Html 도우미가 생성하는 동안 MVC에서 'data-val-number'유효성 검사를 변경하는 방법 (0) | 2020.10.20 |