Shell脚本启动服务器并返回

时间:2014-03-20 06:19:34

标签: shell

我有一个启动服务器的shell脚本。我实际上ssh到我的服务器并运行shell脚本。一旦启动,它会将所有内容记录到控制台,并且控制台不会返回。当我关闭我的机器,ssh连接断开连接并且我启动的服务器关闭时,问题就开始了。我想我需要启动服务器并从shell返回。以下是我到目前为止的情况:

#!/bin/bash
java -Xmx1G -Dhttp.port=8080 -Dconfig.file=MyProject/conf/application.conf -cp ".:MyProject/lib/*" play.core.server.NettyServer .
exit 0

有关如何在调用此shell脚本后返回的任何建议吗?

3 个答案:

答案 0 :(得分:1)

ssh到服务器后只需后台编写脚本(./myscript和amp;)就不会守护它。您必须断开stdin,stdout和stderr,并使其忽略挂断信号(SIGHUP)。

nohup ./myscript 0<& - &> / dev / null&

将完成这项工作。或者,捕获所有输出:

nohup ./myscript 0<& - &> my.admin.log.file&

答案 1 :(得分:1)

为避免在ssh会话上终止脚本,请使用nohup(无挂断)并将输出重定向到日志文件:

nohup bash /path/to/startScript.sh > script.log 2>&1 &

答案 2 :(得分:0)

您可以将stdout和stderr重定向到文件,后台并取消该进程(或nohup),然后退出脚本。

但是,正确的方法是使用像upstart这样的某种进程管理器守护进程。