从脚本重新启动服务

从脚本重新启动服务

我有一个初始化脚本- /etc/init.d/myservice,它启动一些进程,包括CLI流程。在这个 CLI 过程中,我添加了一个命令可用于重新启动服务(restart我们自己- 有点儿)。

我尝试过的 - 从脚本(从 CLI 命令生成),运行sudo service myservice restartrestart其中stop;start.但是,这行不通!即,即使stop发生这种情况,在执行部分时start,脚本也会终止(没有任何信号,而是简单的EXIT)。

nohup我尝试了等等的组合disown,但似乎不起作用!我不确定如何在restart不终止的情况下完成 - 有任何指针或解决方法来进一步调试吗?

总结一下:

  • myservice-> 产生许多进程,包括命令行界面
  • CLI -> 有一个restart命令,它调用脚本
  • 脚本sudo service myservice restart

- 更多信息 -

我使用的是 Ubuntu 12.04,即upstart

答案1

我已经搜索了相当长一段时间,但我在这里找到了这个超级用户问答的一个解决方案,标题为:如何从终端完全分离进程?,在此处发布我的问题后。

| at now

答案2

在再次启动该服务之前,您可能需要等待几秒钟,以便其正确停止。您可以使用以下行延迟脚本

# waiting for 5 seconds
sleep 5

您可以在这里查看更多详细信息 -http://www.cyberciti.biz/faq/linux-unix-sleep-bash-scripting/

相关内容