首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >UpStart initctl启动|重启ubuntu

UpStart initctl启动|重启ubuntu
EN

Stack Overflow用户
提问于 2012-02-28 17:47:27
回答 3查看 14.8K关注 0票数 14

在ubuntu上使用upstart时,如果没有运行,如何发出启动作业的命令;如果已经运行,如何发出重新启动作业的命令。将应用程序部署到新节点时,未定义作业。

代码语言:javascript
运行
复制
initctl restart JOB complains if not already running
initctl start JOB complains if already running.

我可以编写脚本让它这样做

代码语言:javascript
运行
复制
initctl start JOB
initctl restart JOB

但这似乎不是最好的做法。

EN

回答 3

Stack Overflow用户

发布于 2012-03-16 15:00:34

我也遇到过同样的问题。如果没有内置在initctl中的"lazy-stop-then-start“命令,我们就必须编写脚本。

调用start并在失败时重新启动:

代码语言:javascript
运行
复制
initctl start JOB || initctl restart JOB

这个脚本可能不是我们两个都想要的答案,但它足够简短,可以提到它。

只要服务运行良好,它就会成功。

当服务失败时,此脚本将失败两次;例如,如果服务已停止并且实际上无法启动,则它也将无法重新启动。

当然,我正在寻找改进的方法。

我希望这能帮到你。

票数 10
EN

Stack Overflow用户

发布于 2014-05-02 05:15:01

我也尝试了hmalphettes建议的“启动或重启”方法,但遇到了麻烦。当使用这种方法时,将不会应用对upstart脚本的更新。取而代之的是,我使用这个,它的工作方式与我预期的一样:

代码语言:javascript
运行
复制
sudo stop JOB || true && sudo start JOB

这基本上是“如果作业正在运行,则停止它,然后启动它”。

票数 7
EN

Stack Overflow用户

发布于 2014-05-06 05:27:28

代码语言:javascript
运行
复制
sudo service JOB restart

服务命令在Ubuntu中打了补丁,使其在Upstart上的工作方式与在sysvinit上最常见的情况下相同。

代码语言:javascript
运行
复制
systemctl restart JOB

有一些意想不到的效果,通常在使用之前应该仔细研究。它主要在那里,所以您可以在不重新加载作业定义的情况下重新启动作业,这是非常少见的情况。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9479668

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档