我想让它在启动时启动,所以我将以下命令添加到/etc/rc.local
:
/usr/local/bin/tyrantmanager start --home=/data/tyrant/
(从命令行执行时这是可以的)
上周,我的服务器挂了,我必须硬重置。启动后,登录并检查我看到不东京暴君实例正在运行。
有什么方法可以测试以确保它下次启动时能成功启动?除了使用 将输出和错误重定向到日志文件外>> /var/log/tyrantmanager.log 2>&1
,如果它一直无法启动,我还能做什么来“调试”?
附言:我可以为其编写一个启动脚本,但仍然想检查此案例的根本原因。
编辑:我在开发服务器上测试过,得到了相同的结果。以下是日志文件:
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
我不熟悉 Ruby,所以我不知道为什么它通过“找不到命令”错误来自记录器.rb。也许我会在 stackoverflow 上问这个问题。
答案1
看起来像:
- /etc/rc.local 运行时,ttserver 不在路径中。确保在 /etc/rc.local 中正确设置了环境。正如您所说,它可以通过命令行运行。
- ruby 脚本将整个命令字符串作为单个命令调用,没有任何参数。
我怀疑是第一个。
答案2
无论我现在使用什么发行版,我都吸取了教训:如果我想确保在启动时出现某些东西,我将重启服务器,看看会发生什么。只需为您的服务器安排一个维护窗口(如果需要)并在那时执行几次测试重启。看看它是否有效。
过去我确信“这将在下次重启时启动”,但实际上却不会。
答案3
[快速回答]
要rc.local
手动运行,请转到rc.local
路径(cd /etc/
)然后执行以下操作:
$ sudo ./rc.local
如果执行时出现错误,请先执行:
$ sudo chmod +x rc.local