新贵没有看到我的新脚本


27

我添加了一个新的脚本/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工作列出的其他作业可以正常启动,停止和重新启动。

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



这可能是一个愚蠢的问题,但是...不是您的脚本/etc/init.d/吗?
沃孚

@snow,谢谢,但是我已经读过了,但是仍然有问题。
Jasarien

@Wolfer根据新贵入门指南说,“一旦高兴,将文件放入其中/etc/init,现在您可以重新启动并使用新贵了。”
Jasarien

我试图重现该问题,但没有成功。我将您的代码复制粘贴到/etc/init/minecraft.conf中,并顺利发行sudo start minecraft。这是日志文件的内容。~$ sudo cat /var/log/upstart/minecraft.log minecraft started /proc/self/fd/9: 3: exec: /root/minecraft/start.sh: not found minecraft started您能否提供有关正在使用的Ubuntu版本的更多详细信息以及syslog中的任何有用信息?
Goran Miskovic

Answers:


12

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


11

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

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

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


9

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

我从暴发户脚本的末尾错过了“结束脚本”节...

post-start script
   echo "minecraft started"

本来应该

post-start script
   echo "minecraft started"
end script

我不确定为什么没有@时它可以用于@schkovich end script...


2
因为我添加了结束脚本节。内置(自动)自动完成代码。:(
Goran Miskovic

我遇到了同样的问题,但令人发指的是,在/ var / log和initctl reload-configuration中什么都没有出现-详细信息是无声的。
尼尔·麦吉尔

4

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

author ""

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

# initctl reload-configuration

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


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.