当前位置: 首页>>技术教程>>正文


新贵没有看到我的新脚本

问题描述

我向/etc/init/添加了一个名为minecraft.conf的新脚本,其中包含以下脚本:

start on startup
stop on shutdown
respawn
respawn limit 20 5

script
  export HOME="/root"
  exec /root/minecraft/start.sh 2>&1 >> /var/log/minecraft.log
end script

post-start script
   echo "minecraft started"

当我尝试start minecraft时,出现错误:start: Unknown job: minecraft

我尝试运行initctl list,但我的Minecraft作业未列出。我尝试运行initctl reload-configuration,但没有任何区别。

initctl list列出的其他作业可以在启动,停止和重新启动时正常工作。

为什么暴发户看不到我的新脚本?

最佳方法

使用以下命令来检查脚本语法的简单方法:

init-checkconf -d /etc/init/service_name.conf

我发现,即使使用有效的Upstart文件,如果上次引导服务器时该文件不存在,我也必须重新启动服务器以使Upstart看到该文件。

次佳方法

使用initctl reload-configuration重新加载配置时,请检查新贵日志(位于/var/log/syslog中)。如果出现语法错误,它将显示在此处。这通常就是为什么您不能使用新的暴发户配置。

第三种方法

我觉得有点傻…但是这里是:

我在新贵脚本的最后错过了”end script”节。

post-start script
   echo "minecraft started"

本来应该

post-start script
   echo "minecraft started"
end script

我不确定为什么它在没有end script的情况下适用于@schkovich,但是…

第四种方法

在我的情况下,这是一个空的author字段,如下所示:

author ""

只有在引号中添加了某些内容后,它才起作用。

# initctl reload-configuration

也将/etc/init/servicename.conf:2: Expected token而不是stdout抛出到syslog中。太忙而无法为即将死去的软件包提交错误报告。

第五种方法

也许不适用于此,但值得一提:如果您为正在运行的服务编辑Upstart配置文件,则运行restart不会重新加载配置。您必须运行stopstart才能使新更改生效。

http://upstart.ubuntu.com/cookbook/#restart

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/11044.html,未经允许,请勿转载。