Cygwin なんでも掲示板

一覧最新記事過去一覧 | 検索FAQアンテナHOME
(新規投稿・発言はできません)


スレッド

└◇2022:
postgres initdb [HAL] 03/27 13:44

 ├◇2023:Re:postgres initdb [discypu] 03/27
 └◇2024:Re:postgres initdb [discypu] 03/27
  └◇2025:Re[2]:postgres initdb [HAL] 03/28
   └◇2027:Re[3]:postgres initdb [discypu] 03/28 <


2022● postgres initdb[ HAL ] 2004 03/27 13:44
【問題点】
postgresの設定で、$ initdb --no-locale -D /var/postgresql/dataを行うと、
creating template1 database in /var/postgresql/data/base/1... FATAL: could not create shared memory segment: Function not implemented
DETAIL: Failed system call was shmget(key=1, size=1081344, 03600).

initdb: failed
[1]+ Done ipc-daemon2

というエラーが出ます。

【環境】
Package Version
cygipc 2.03-2
cygrunsrv 0.98-1
cygwin 1.5.7-1
postgresql 7.4.1-3

【現在までの行った作業】
1.「postgres」ユーザを作成
2.PostgreSQLのデータディレクトリを作成
$ mkdir -p /var/postgresql/data
3.PostgreSQLのデータディレクトリの所有者を変更
$ chown postgres /var/postgresql
$ chown postgres /var/postgresql/data
4.$ ipc-daemon2 &


過去ログを検索して見て
「ipc-daemon &」で行っていると、上記のエラー
が出るとありました。
しかし、私は、「ipc-daemon2 &」と打っておりますので
問題はなくinitdbができるはずなのですが・・・。
どなたかご教示いただけませんか?
スレッド一覧


2023● Re:postgres initdb[ discypus ] 2004 03/27 18:34
最近同じエラーを手元で出した気がしますが、対処は忘れました。

> 【問題点】
> postgresの設定で、$ initdb --no-locale -D /var/postgresql/dataを行うと、
> creating template1 database in /var/postgresql/data/base/1... FATAL: could not create shared memory segment: Function not implemented
> DETAIL: Failed system call was shmget(key=1, size=1081344, 03600).
> > initdb: failed
> [1]+ Done ipc-daemon2
> > というエラーが出ます。

未検証ですが、

PostgreSQLに付属しているipccleanで何とかなるかも。(以下のページを見ると確率は低そうですが)
http://www.postgresql.jp/document/pg74doc/html/app-ipcclean.html

また、Cygwinの付属文書だと、
/usr/share/doc/cygipc-2.03/README
に、次の文があります。
---------- 引用開始
Known Issues:
1) If shutting down and restarting ipc-daemon2
under DIFFERENT users, you must "clean out"
the IPC files in /tmp. These include:
/tmp/MultiFileMsg2
/tmp/MultiFileSem2
/tmp/MultiFileShm2
/tmp/cygipc2_*
---------- 引用終了

で、"crean out"するには、ipcrmコマンドで消すとか、
いったんipc-daemon2を止めてから上記のファイルを消すとか、で対処したような気もします。
スレッド一覧


2024● Re:postgres initdb[ discypus ] 2004 03/27 19:19
あと、そもそもipc-daemon2 が起動できていない可能性が大きいですね。
# というのに、pgsql-cygwinメーリングリストを見ていて、遅ればせながら気がついた。

> creating template1 database in /var/postgresql/data/base/1... FATAL: could not create shared memory segment: Function not implemented
> DETAIL: Failed system call was shmget(key=1, size=1081344, 03600).
> > initdb: failed
> [1]+ Done ipc-daemon2

のように、ipc-daemon2 のプロセスが終了(Done)していますし。もしそうなら、当然、Function not implemented になるわけで、こちらでもipc-daemon2を止めると同じエラーになりました。

もしそうなら、ipc-daemon2をちゃんと起動させればよい、と。

/tmp を掃除して(ipcrmを実行、あるいは自分でrmで消す)を行い、再度、ipc-daemon2の起動〜initdb実行ではいかがでしょうか?

また、cygcheck -c cygipcして、OKではなくIncompleteであったら、再インストール (setup.exeで、reinstallを選ぶ)で。

それでも解決しなかったら、本家のリリースノートとかMLとか pgsql-cygwin MLを検索、で本家でも質問してみる、とか。
スレッド一覧


2025● Re[2]:postgres initdb[ HAL ] 2004 03/28 00:44
【問題点】
/tmp を掃除してinitdbはできたのですが、

$ psql -U postgres template1をおこなうと、
コマンドラインで、「_ 」が点滅するだけで何も表示されなくなります。

【やっている作業順序】
1.$ ipc-daemon2 &
[1]365
2.$ postmaster -D /var/postgresql/data &
[2]986
[1] Done ipc-daemon2
3. $ psql -U postgres template1

ユーザはpostgresです。
ご教示いただけませんか?
スレッド一覧


2027● Re[3]:postgres initdb[ discypus ] 2004 03/28 22:59
> 【問題点】
> $ psql -U postgres template1をおこなうと、
> コマンドラインで、「_ 」が点滅するだけで何も表示されなくなります。

 psql実行前にすでに ipc-daemon2が終了している([1] Done ipc-daemon2)のがpsqlが動作しない原因だと思います。
 ただ、ipc-daemon2が停止してしまう理由はわかりません。私は経験したことがない状況です。

 2023に書いたように、/tmpの消去、ipc-daemon2の再起動、cygcheckによるパッケージのチェック、インストールipc-daemon2の再インストールがすべてOKであれば、対処方法は思いつきません。
スレッド一覧

早田のホームページへ
CGIROOM