如何更改 SUSE 11 中的 init 脚本的启动顺序

如何更改 SUSE 11 中的 init 脚本的启动顺序

我想按以下顺序启动服务

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 日志以查看其中是否有任何线索?

相关内容