如何测试 /etc/rc.d/rc.local 以确保命令在启动时成功启动?

qua*_*nta 3 startup rc.local

我正在使用tyrantmanager来管理Tokyo Tyrant 的几个实例。它工作正常。

我想让它在启动时启动,所以我将以下命令添加到/etc/rc.local

/usr/local/bin/tyrantmanager start --home=/data/tyrant/
Run Code Online (Sandbox Code Playgroud)

(从命令行执行此操作时就可以了)

上周,我的服务器挂了,我必须硬重置。启动后,登录并检查我看不到Tokyo Tyrant 实例在运行。

有什么方法可以测试以确保它在下次启动时成功启动?除了使用 将输出和错误重定向到日志文件之外>> /var/log/tyrantmanager.log 2>&1,如果它一直无法启动,我还能做什么来“调试”。

PS:我可以为它编写一个 init 脚本,但仍然想检查这种情况的根本原因。


编辑:我已经在开发服务器上进行了测试并得到了相同的结果。下面是日志文件:

15:02:17  INFO : Starting test : ttserver -host 192.168.x.x -port 1978 -thnum 8 -tout 15 -dmn -pid /opt/tyrant/instances/test/test.pid -log /opt/tyrant/instances/test/log/test.log -le -ulog /opt/tyrant/instances/test/ulog -ulim 1g -rts /opt/tyrant/instances/test/test.rts /opt/tyrant/instances/test/data/test.tch#opts=ld#mode=wc
/usr/local/lib/ruby/gems/1.8/gems/logging-1.5.2/lib/logging/logger.rb:429: command not found:  ttserver -host 192.168.x.x -port 1978 -thnum 8 -tout 15 -dmn -pid /opt/tyrant/instances/test/test.pid -log /opt/tyrant/instances/test/log/test.log -le -ulog /opt/tyrant/instances/test/ulog -ulim 1g -rts /opt/tyrant/instances/test/test.rts /opt/tyrant/instances/test/data/test.tch#opts=ld#mode=wc 
Run Code Online (Sandbox Code Playgroud)

我不熟悉 Ruby,所以我不知道为什么会出现logger.rb 中“command not found”错误。也许我会在stackoverflow上问这个问题。

Jan*_*nen 8

无论我现在使用什么发行版,我都吸取了教训:如果我想确保在启动时出现某些东西,我将重新启动服务器并看看会发生什么。只需为您的服务器安排一个维护窗口(如果需要)并在那时执行几次测试重新启动。看看它是否有效。

过去我一直确信“这将在下次重新启动时开始”,但后来不会了。

  • +1 这里面有很多智慧。无论您认为自己做对了多少事情,都无法替代实际测试。 (2认同)