linux 下启动某些应用程序的时候,会有下面的错误提示信息:
cannot create shared memory
解决办法:
使用ipcs 和 ipcrm 分别来 查看 和 移除 某个应用所占用的资源;
举例:
例如某个程序在启动的时候,可能会占用某端口的资源;
查看需要使用
ipcs 命令
后面可以带上参数,也可以不带:
-m 输出有关共享内存(shared memory)的信息
-q 输出有关信息队列(message queue)的信息
-s 输出有关“遮断器”(semaphore)的信息
可能会看到如下的情况:
------ Shared Memory Segments --------
key shmid owner perms bytes nattch status
0x000022ca 262152 xdbms 666 16384 0
0x092513c8 5931020 oracle11g 660 4096 0
0x00030000 6815758 xdbms 644 129672 0
0x00033000 6848527 xdbms 644 129672 0
0x000010e5 6586384 xdbms 666 16384 0
0x000010fb 6619153 xdbms 666 16384 0
------ Semaphore Arrays --------
key semid owner perms nsems
0x920ebce4 98304 oracle11g 660 152
0x920ebce5 131073 oracle11g 660 152
0x920ebce6 163842 oracle11g 660 152
------ Message Queues --------
key msqid owner perms used-bytes messages
上面的三个参数,对应了这三个段落;
如果想移除某一个占用端口33000的程序,可以通过下面的命令来完成:
ipcrm
但是一定要带上参数(参数类型及说明同上)
ipcrm
ipcrm -m 6848527
解释一下,之所以用m 是因为需要释放的这个端口是在m段的。