Linux

如何在 SUSE 11 中更改初始化腳本的啟動順序

  • September 8, 2015

我想按以下順序啟動服務

重啟後的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 腳本在重新啟動時被呼叫?

我還缺少任何其他步驟嗎?

步驟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 中找到日誌

&lt;notice -- Aug 23 22:51:48.399483000&gt; puppet start
Starting puppet services.
&lt;notice -- Aug 23 22:51:48.462954000&gt; 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
&lt;notice -- Aug 23 22:51:48.980495000&gt; 'puppet start' exits with status 0

如果發現 mongodb 腳本有問題,可以在 /etc/init.d/mongodb 的“#!/bin/bash”下添加以下兩行,方便調試。

set -x
export PS4='+${BASH_SOURCE}:${LINENO}:${FUNCNAME[0]}: '

引用自:https://serverfault.com/questions/720845