我正在运行Debian Squeeze AMD64服务器。 目标运行级别是运行级别2,其中包括rsyslogd,cron,sshd和其他一些东西,但不是dovecot,postfix,apache2等。系统无法达到运行级别2有几个症状:
而这只是一直失败的东西。 内存已经过testing,dmesg显示没有问题。 我没有任何线索。
更新 :(缩短)在运行级别1中调用的rsyslogd -c4 -d的输出
rsyslogd 4.6.4启动,兼容模式4,模块path“调用者请求对象'net',未find(iRet -3003)请求加载模块'lmnet'加载模块'/user/lib/rsyslog/lmnet.so'模块types2正在加载conf.c请求引用'lmnet',refcount 1 rsylog运行时初始化,版本4.6.4,当前用户1 syslogd.c请求引用'lmnet',现在引用计数2
那么我可以用Strg + C来杀死rsyslogd。 尽pipe如此,/ var / log没有显示任何configuration的日志文件。
Update2 :感谢@DerfK我还没有任何线索,但至less我缩小了这个问题。 我现在正在用/etc/init.d/apache2 stop (当然没有运行apache2)进行testing,这个挂起也是一个更明显的失败。
经过一些testing,我发现一个单行的文件:
/ usr / sbin / apache2ctl configtest> / dev / null 2>&1
挂起,同时在交互式shell中执行相同的行。 我无法进一步减less这一行,而每一个部分,streamredirect和突击队本身是必要重现挂起。 @DerfK也指出了我对这里有什么样的挂钩的浅薄的暗示:
wait4(-1为init脚本 futex(0xsomepointer, FUTEX_WAIT_PRIVATE, 2, NULL用于初始化脚本调用的rsyslogd / apache2二进制文件 系统在2011年秋季被我的主机安装成了Debian Lenny,我立即升级到了Squeeze并与Squeeze保持同步,然后用于testing。 虽然没有太大的变化。 我想我以前从来没有试图重启系统。
Update3 :我发现这个问题。 我的/etc/nsswitch.conf指定ldap作为主机查找备份,这在启动的时候是不可用的。 依靠dns完全解决了我的启动问题。
这听起来像一些基本的networking服务没有启动。 将/etc/rc2.d的内容与/etc/rc3.d比较一下,看看runlevel 3是否启动了runlevel 2并不是(通常情况下是这样,但通常情况下并不是这样)。
Debian Squeeze默认进行并发启动。 这意味着多个init脚本在启动的同时运行。 您可以尝试禁用此function,以便每次只运行一个脚本,以帮助找出它无法执行的步骤。 由于init脚本每次都会以同样的顺序运行,除非它是一个非常严重的问题。
要禁用并发引导,请将CONCURRENCY=none添加到/etc/default/rcS 。 删除行以恢复默认。