我想按以下顺序启动服务
mysql mongodb 重启后
我已将服务 mysql 初始化脚本更改为
lrwxrwxrwx 1 root root 8 Sep 8 11:05 S30mysql -> ../mysql
lrwxrwxrwx 1 root root 10 Sep 8 11:05 S40mongodb -> ../mongodb
30 < 40 因此 mysql 服务在 mongodb 之前启动
mysql 在重启后可以正常启动,但 mongodb 却不能?这种情况只出现在
SUSE Linux Enterprise Server 11 (x86_64)
VERSION = 11
PATCHLEVEL = 0
我如何调查在重启时调用 /etc/init.d/mongodb 脚本的时间?
我还遗漏了其他步骤吗?
答案1
步0. 运行“runlevel”以确保你在正确的 rcX.d 目录中
步1.检查mongodb日志
步2. 检查“/etc/init.d/mongodb start”是否正常工作
步3. 检查 /var/log/boot.msg 以确保您的 S40mongodb 脚本在启动时被调用
笔记:
/etc/init.d/rc 脚本负责Sxxservice和Kxxservice,一旦服务被rc启动/停止,它就会打印日志。
346 blogger "$service start"
347 $link start; status=$?
348 echo -en "$rc_reset"
349 splashprogress "$service start"
350
351 case "$status" in
352 [1-47]) failed="${failed:+$failed }$service" ;;
353 [56]) skipped="${skipped:+$skipped }$service" ;;
354 0|*) ;;
355 esac
356
357 blogger "'$service start' exits with status $status"
您可以在 /var/log/boot.msg 中找到日志
<notice -- Aug 23 22:51:48.399483000> puppet start
Starting puppet services.
<notice -- Aug 23 22:51:48.462954000> startproc: execve (/usr/bin/puppet) [ /usr/bin/puppet agent --server=puppet.fleetboard.dmz --logdest=/var/log/puppet/puppet.log ], [ CONSOLE=/dev/console SELINUX_INIT=YES ROOTFS_FSTYPE=ext3 SHELL=/bin/
sh TERM=linux ROOTFS_FSCK=0 crashkernel=1 LC_ALL=POSIX INIT_VERSION=sysvinit-2.86 REDIRECT=/dev/tty1 COLUMNS=80
PATH=/bin:/sbin:/usr/bin:/usr/sbin DO_CONFIRM= RUNLEVEL=3 PWD=/ SPLASHCFG= PREVLEVEL=N LINES=25 HOME=/ SHLVL=2 splash=silent SPLASH=no ROOTFS_BLKDEV=/dev/vg00/lvroot _=/sbin/startproc DAEMON=/usr/bin/puppet ]
done
<notice -- Aug 23 22:51:48.980495000> 'puppet start' exits with status 0
如果发现mongodb脚本有问题,可以在/etc/init.d/mongodb中的“#!/bin/bash”下添加以下两行,以方便调试。
set -x
export PS4='+${BASH_SOURCE}:${LINENO}:${FUNCNAME[0]}: '
答案2
您所做的应该有效。
您是否检查过系统日志和/或 mongodb 日志以查看其中是否有任何线索?