「could not attach shared memory」というエラーが出てApacheが起動しません
【原因】
Apacheが異常終了したなどにより、ラウンドアバウトが正常終了できなかった場合は、共有メモリの破棄処理が正しく行われません。
この場合、次回Apache起動時にラウンドアバウトが開始できない状態になります。
【回避策】
この現象を解決するには、以下の手順で行います。
1.Apacheを停止します。
2.ipcsコマンドで使用中の共有メモリセグメントとセマフォ配列を確認します。
(ApacheのバージョンやRAのエディション・設定により、表示される内容が異なります)
[root@roundabout ~]# ipcs -m -s
------ 共有メモリセグメント --------
キー shmid 所有者 権限 バイト nattch 状態
0x01018fd7 688128 apache 600 11432992 9
0x0101926a 720897 apache 600 4194304 9
------ セマフォ配列 --------
キー semid 所有者 権限 nsems
0x00000000 3309568 apache 600 1
0x00000000 3342337 apache 600 1
0x00000000 3375106 apache 600 1
0x00000000 3407875 apache 600 1
0x00000000 3440644 apache 600 1
0x00000000 3473413 apache 600 1
0x00000000 3506182 apache 600 1
3.ipcrmコマンドで共有メモリセグメントを削除します。
[root@roundabout ~]# ipcrm -m [共有メモリのshmid]
4.ipcrmコマンドでセマフォ配列を削除します。
[root@roundabout ~]# ipcrm -s [セマフォ配列のshmid]
5.ラウンドアバウトのshmファイルを削除します。
[root@roundabout ~]# rm /var/roundabout/work/*.shm