我有一个初始化脚本- /etc/init.d/myservice
,它启动一些进程,包括CLI流程。在这个 CLI 过程中,我添加了一个命令可用于重新启动服务(restart我们自己- 有点儿)。
我尝试过的 - 从脚本(从 CLI 命令生成),运行sudo service myservice restart
,restart
其中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/