在 Ubuntu 上 Informix 无法启动 的原因通常可以归为以下几类。下面按最常见 → 较少见的顺序说明,并给出排查方法。
Informix 强依赖环境变量。
必须包含:
INFORMIXDIR=/opt/informix
INFORMIXSERVER=ol_informix
ONCONFIG=onconfig.ol_informix
PATH=$INFORMIXDIR/bin:$PATH
LD_LIBRARY_PATH=$INFORMIXDIR/lib:$INFORMIXDIR/lib/esql
✅ 检查:
env | grep INFORMIX
❌ 如果为空或路径错误 → 启动必失败
Informix 必须用 informix 用户启动
whoami
# 必须是 informix
正确方式:
su - informix
oninit -v
常见问题:
ROOTPATH 指向不存在的文件DBSERVERNAME 与 INFORMIXSERVER 不一致sqlhosts)检查:
$INFORMIXDIR/etc/sqlhosts
$INFORMIXDIR/etc/onconfig
Ubuntu 默认权限严格
ls -l $INFORMIXDIR/dbs
应为:
informix informix
修复:
chown informix:informix /opt/informix/dbs/rootdbs
chmod 660 /opt/informix/dbs/rootdbs
Ubuntu 默认 SHM 太小
查看:
ipcs -l
常见错误日志:
Cannot attach shared memory
解决(临时):
sysctl -w kernel.shmmax=2147483648
sysctl -w kernel.shmall=524288
永久:
/etc/sysctl.conf
Ubuntu 用 systemd,可能限制:
检查:
systemctl status informix
journalctl -u informix
cd $INFORMIXDIR/tmp
ls -lt
查看:
oninit.log
或:
onstat -m
你可以直接贴出:
oninit -v 的输出oninit.log 报错内容我可以精准告诉你是哪一行配置错了。