首先说一下背景:
我们平常用Server Admin来管理MacOSX Server时, 是通过图形界面与一个叫servermgrd的后台进程沟通交换数据的, 它由LaunchCtl启动/System/Library/LaunchDaemon/com.apple.servermgrd.plist
实现开机自动运行, 侦听端口311.
事实上servermgrd是一个Web服务器, 我们的Server Admin是通过HTTP的方式实现远程管理的(即便你在本机使用). 你可以在本机上打开https://localhost:311印证这一点.
不得不说servermgrd的启动依赖太多东西, 修复的过程让我意识到许多服务的配置都会间接的导致servermgrd崩溃. 我认为这会导致许多不便, 问题的根源是servermgrd不能尝试去修复你的配置, 但至少应该兼容这些未包括在图形界面上或不正确的配置, 例如当配置Apache的时候用户自己打开配置文件加入的参数Server Admin是不会碰的. 总之, 不应该崩溃, 因为它一旦崩溃, Server Admin就无法修改, 这真的很尴尬.
我的Mac Pro运行着Mac OS X Server 10.6.3. 在一次运行Gateway Setup Assistant失败后, 遭遇了servermgrd不能启动的尴尬局面. Console里显示servermgrd不能启动的原因是”Segmentation fault”.
May 12 14:20:39 mes servermgrd[7658]: servermgr_ipfilter:ipfw config:Notice:Flushed IPv4 rules
May 12 14:20:39 mes servermgrd[7658]: servermgr_ipfilter:ipfw config:Notice:Flushed IPv6 rules
May 12 14:20:39 mes com.apple.launchd[1] (com.apple.servermgrd[7658]): Job appears to have crashed: Segmentation fault
May 12 14:20:39 mes com.apple.launchd[1] (com.apple.servermgrd): Throttling respawn: Will start in 9 seconds
May 12 14:20:39 mes com.apple.ReportCrash.Root[7607]: 2010-05-12 14:20:39.824 ReportCrash[7607:440b] Saved crash report for servermgrd[7658] version ??? (???) to /Library/Logs/DiagnosticReports/servermgrd_2010-05-12-142039_localhost.crash
我尝试着google各种可能的关键词, 发现servermgrd不能启动的原因真的太多了. 许多问题都没有答案, 解决办法往往是重装系统.
没有了Server Admin这个图形化的工具, 其实我们还有serveradmin这个shell工具, 它不需要与后端通讯, 只是用起来有点不方便.
我是在运行向导时出现的问题, 因此我将目标锁定在NAT服务. (说起来容易, 其实到此为止我已经浪费了大半天的时间了.)
1 | # 查看NAT服务配置 |
看到了没? NAT的接口竟然指向了空字符串.
nat:interface = ""
修复方法:
1 | # 试着改回正常值 |
顺便跟着乔老爷子起哄, BS一下Adobe.
起死回生的Server Admin再一次尝试连接时, 会出奇的慢, 似乎在重置着自己的配置. 等了N久后显示 Server Admin wants to use the PrivateEncryptedDatak keychain
, 并且提示我输入密码, 可是怎么输也不对.
你有没有觉得 PrivateEncryptedDatak
很眼生, 它是谁呀? Google后发现它是Adobe Air的一个示例程序生成的Keychain. Adobe suck!
删了它, 没事的, 反正就一Demo.
位置: ~/Library/Application Support/Adobe/AIR/ELS/com.adobe.demo.RememberMe/
如果你有洁癖, 就继续打开Keychain - Edit - Keychain List. 把那里面的也删除了.