因为实例用户的profile文件有一行“bash”导致db2iupdt命令挂住

[复制链接]
查看15 | 回复15 | 2016-3-2 22:19:00 | 显示全部楼层 |阅读模式
问题症状:
从 db2iupdt 的trace, 你可以看到db2iupdt挂在下面这个地方:
33658
回复

使用道具 举报

千问 | 2016-3-2 22:19:00 | 显示全部楼层
|\ 893990688 URE::isURERunnerRoot EXIT Fri Jan8 06:29:21 2016 --, UINT = 1
33659
回复

使用道具 举报

千问 | 2016-3-2 22:19:00 | 显示全部楼层
| 893990688 InstallProcess::executeLocal 40 -DATA-, STRING = cd /opt/IBM/db2/V10.5/fp6/;
33660
回复

使用道具 举报

千问 | 2016-3-2 22:19:00 | 显示全部楼层
| 893990688 InstallProcess::executeLocal 90 -DATA-, STRING = cd /opt/IBM/db2/V10.5/fp6/;/opt/IBM/db2/V10.5/fp6/instance/db2iupdt_local -u db2fenc1-k-a server-d db2inst1 1> /tmp/db2io2lRLMh 2> /tmp/db2ie9LwOXY
从 db2iupdt_local 的输出(上面的例子该文件是/tmp/db2ie9LwOXY), 你可以看到挂在命令 "db2licd -xxx" 上:
>>> /tmp/db2ie9LwOXY <<<
...
+ '[' 130528 = 150731 -o /opt/IBM/db2/V10.5/fp6 '!=' /opt/IBM/db2/V10.5 ']'
+ '[' -f /home/db2inst1/sqllib/adm/db2licd ']'
+ /opt/IBM/db2/V10.5/fp6/instance/db2iexec db2inst1 '/home/db2inst1/sqllib/adm/db2licd -xxx'
问题原因:
在实例用户的profile文件(比如说:.bash_profile, .bashrc, .profile, .kshrc, 或者任何可以被这些文件调用的脚本)里面有一行"bash"。 这会导致执行挂住的那行命令时会新起一个shell, 然后"db2licd -xxx'会在这个新shell里面执行,随后它的返回结果也停留在这个新shell,这导致执行db2iupdt的用户shell(root) 无法接收到返回,以至于挂住。
问题解决:
所以建议检查实例用户的profile文件(比如说:.bash_profile, .bashrc, .profile, .kshrc, 或者任何可以被这些文件调用的脚本),看看是否有一行"bash"。 如果有,则把找到的"bash"那行从脚本删除。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行