PostgreSQL সার্ভারটি থামবে না


88

ম্যাক ওএস এক্স 10.8.4 এ পোস্টগ্রিএসকিউএল নিয়ে কিছুটা সমস্যা রয়েছে। brew rm postgresql --forceপোস্টগ্রিস সার্ভার চলাকালীন আমি দুর্ঘটনাক্রমে করেছি । আমি ব্যবহার করে ইনস্টল 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"?

যখন আমি "পিএস-শেফ | গ্রেপ পোস্টগ্রেস" চালাই আমি পাই:

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


4
না pg_ctl -D /usr/local/var/postgres stop -m immediateঅন্য দুটি প্রচেষ্টা চেয়ে কোনও পেতে?
bma

এটি দৌড়ানোর মতোই হবে pg_ctl -D /usr/local/var/postgres stop -miএবং হ্যাঁ আমি যা পাই তা হ'ল "সার্ভারটি বন্ধ হয় না"
পার্কার হাচিনসন

আমি এটি অনুমান করেছি, তবে এদিকে তাত্ক্ষণিকভাবে ঝলক postgres --help"মি" পতাকাটি তত্ক্ষণাত দেখায় নি।
বিএম

brew reinstall postgresql stackoverflow.com/a/39781473/6086226 আমার পক্ষে কাজ করেছে
ডার্ক জান স্পেলম্যান

উত্তর:


164

একই সমস্যা ছিল pg_ctl: server does not shut down,। তদ্ব্যতীত, ps auxwww | grep postgresপোস্টগ্রিস চলছে না দেখানো হয়েছে, যখন pg_ctl -D /usr/local/var/postgres statusদেখিয়েছেন যে পোস্টগ্রাগগুলি চলছে। আমার ম্যাকটি পুনরায় চালু করা কোনও উপকারে আসেনি, আমি এসএমসিটিকে পুনরায় সেট করতেও পেরেছি, তবে এই এসও কিউ / এ আমাকে পরবর্তী বিষয়গুলি কীভাবে সন্ধান করতে হবে তা সম্পর্কে ধারণা দিয়েছেন: ব্রিউ ইস্যু।

চিন্তার এই লাইনটি অনুসরণ করার পরে, আমি এই সহায়ক ব্লগ পোস্টটি পেয়েছি , যা নীচের আদেশে নেমে এসেছে যা আমার জন্য এই সমস্যাটি সমাধান করেছে:

$ brew services list
$ brew services restart postgresql

আশা করি এটি কারও সাহায্য করবে।

আপডেট - অজানা আদেশ: পরিষেবাদি

মন্তব্যগুলির একটি ('অজানা কমান্ড: পরিষেবাদি') অনুসরণ করে কিছুটা তদন্তের পরে, আমি জানতে পেরেছিলাম যে হোমব্রিউয়ের লেখকরা servicesকেউ এই কোডটি বজায় রাখতে চায় না বলে রেপো থেকে সরিয়ে নেওয়ার সিদ্ধান্ত নিয়েছে ।

আপনি এখানে এবং এখানে এটি সম্পর্কিত আরও পড়তে পারেন (সম্পর্কিত গিথুব টিকিট)।

আরও কিছু খননের পরে, আমি এই রেপোটি পেয়েছি যা 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

এখানে আরও একটি প্রস্তাবিত সমাধান রয়েছে: /apple/150300/need-help-using-homebrew-services-command । এটি নিজেই পরীক্ষা করে দেখেনি, সুতরাং কীভাবে এবং কীভাবে এটি কাজ করে তা জানেন না।


4
এটি ঠিক একই জিনিসটি করার জন্য কয়েক বছর ধরে জমা হয়েছি এমন অনেক বাশ অভিভাবকে অবিচ্ছিন্ন করে দেয়। ভাল দেখাচ্ছে!
অ্যালেক্স কেস্টনার

4
@ প্রাকৃতিক আপনার মন্তব্যের জবাবে আমার উত্তর আপডেট করেছে। যদি এটি আপনার পক্ষে ঠিক কাজ করে তবে আমাকে বলুন।
নায়ারা

4
আমার জন্য সমস্যা সমাধান। ধন্যবাদ!
টোটোরোটোরো

সেখানে যে কোনও রেল ব্যবহারকারীদের জন্য, আমি স্বাভাবিক রেক কমান্ডের মাধ্যমে পোস্টগ্র্রেস বন্ধ করার চেষ্টা করছিলাম bundle exec rake pg:stop,। কিন্তু যে কাজ করে না, নেতৃত্বে pg_ctl: server does not shut down। কাজটি brew services restart postgresqlআমার পক্ষে কাজ করেছিল worked 👌
zbeat

ধন্যবাদ মানুষ! আমি বুঝতে পারি না যে এটি আসলে একটি হোমব্রু পরিষেবা চলছে। সুন্দর!
অ্যাড্রিয়ান গ্রিজিওয়াকজেউস্কি

57

$ brew services list

$ brew services stop postgresql

থামছে postgresql, তবে এতে কিছুটা সময় লাগতে পারে → সফলভাবে থামানো হয়েছে postgresql(লেবেল: homebrew.mxcl.postgresql)


4
pg_ctl ... stopকোনও লাভ না করে থামার চেষ্টা করা হয়েছে । একবার আমি ব্রিগ সার্ভিসগুলি পোস্টগ্রেস্কল বন্ধ করলাম, আমার পিজি_সিটিএল ... এখন প্রত্যাশার মতো কাজ বন্ধ করুন। কীভাবে নিশ্চিত তা নয়, তবে আমি এটি সমাধান করে আনন্দিত!
ইগি

আমার এটির সাথে সংস্করণ যুক্ত করা দরকার। brew services stop postgresql@10
আইভর স্কট

12

আমারও একি দশা. আমি ভুলে গিয়েছিলাম যে কিছুদিন আগে আমি 'মধ্যাহ্নভোজ' একীভূত করেছি এবং প্রারম্ভের সময় প্লাস্ট শুরু করতে এটি একটি লঞ্চক্টেল মোড়ক হিসাবে ব্যবহার করেছি ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist। নিম্নলিখিত কোডের লাইনের কারণে 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>

প্রক্রিয়াটি হত্যার চেষ্টাটি সরাসরি কাজ করে নি কারণ আমার প্লিস্টটি আনলোড করা দরকার।

    launchctl unload homebrew.mxcl.postgresql.plist

নোট করুন .plist ফাইলের সঠিক নামটি নাও থাকতে পারে। আমার ক্ষেত্রে ছিল homebrew.mxcl.postgresql92.plist। ইউসেল্ফ পরীক্ষা করুন।
এমসিপি

12

আমারও একই সমস্যা ছিল ... লঞ্চ এজেন্টটি সরানো আমার জন্য সমস্যার সমাধান করেছে:

launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
rm ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist

10

কমান্ডটি ব্যবহার করে আমি এই ত্রুটিটি পেয়েছি

pg_ctl stop -m immediate

pg_ctl start

আমার এভাবে প্লিস্টটি আনলোড করার দরকার নেই।


4
আমি পিজি_সিটিএল পেয়েছি: কোনও ডাটাবেস ডিরেক্টরি নির্দিষ্ট করা হয়নি এবং পরিবেশের পরিবর্তনশীল পিজিডিটি আনসেট নেই
সুপারউবারডুপার

4
একই ত্রুটি পেয়ে: কোন ডাটাবেসের উল্লিখিত ডিরেক্টরির ও পরিবেশ পরিবর্তনশীল PGDATA সেট না
jjj

4
@ সুপারউবারডুপার আপনার ডিডি যুক্ত করতে হবে। উদাহরণস্বরূপ: pg_ctl স্টপ-তাত্ক্ষণিক -D। " আপনি বর্তমান ডাটাবেস ডিরেক্টরিতে
রয়েছেন

8

সন্ধান করে যে আমার পোস্টগ্রাগের জন্য আমার ব্রি.প্লেস্টটি ~ / লাইব্রেরি / লঞ্চআজেন্টস / এ আনলোড এবং সরানো দরকার। পুনরায় চালু করার পরে সবকিছু ঠিক আছে ... সমাপ্ত প্রশ্ন।


7
দয়া করে
এটিতে

7

ব্রিউ-ইনস্টলড পোস্টগ্রিএসকিউএল-র উপর নির্ভর করার সময়, নিম্নলিখিত কমান্ডটি এটি বন্ধ করার জন্য কাজ করেছিল।

> brew services stop postgresql

stopping `postgresql`... (might take a while)
==> Successfully stopped `postgresql` (label: homebrew.mxcl.postgresql)

অন্য উত্তরে উল্লিখিত হিসাবে প্রক্রিয়াগুলির তালিকাটি গ্রেপিং করা এবং তারপরে পোস্টগ্রাস-সম্পর্কিত যে কোনও কিছুই হত্যা করা কার্যকর হয় না

ps aux | grep postgres
kill $PID

0

আমি এর postgresমাধ্যমে শুরু করিনি brew services, সুতরাং সেভাবে থামাতে পারিনি।

এটি কাজ করে।

$ ps -ef | grep postgres
501   547     1   0  2:07pm ??         0:00.29 /Applications/Postgres.app/Contents/Versions/9.6/bin/postgres -D /Users/username/Library/Application Support/Postgres/var-9.6 -p 5432

উপর -Dথেকে প্যারামিটার ব্যবহার করুন ।

$ pg_ctl stop -D "/Users/username/Library/Application Support/Postgres/var-9.6"
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.