我有一个永远运行(与套接字监听线程无限循环),并需要它在任何时候都在后台运行的jar。 一个例子是:“java -jar test.jar”我该怎么做? 提前致谢!
几种方法:
追加&在后面。 但是,如果closures启动程序的terminal,则使用该程序将仍然终止。
开始一个screen会话,并在其中启动程序; 您可以分离screen会话并closuresterminal。 之后,您可以再次连接到会话,并重新回到控制台上,就好像您一直在那里一样。 但是,在运行程序之前,您需要启动一个屏幕会话,如果您忘记了这一点,则无法执行任何操作。
使用你的shell中的disown作业控制。 这将从你的tty中分离任务,并且当ttyclosures时你的程序不会被终止。 但是,我不认为有什么办法可以重新安排一个不知名的工作。
我一直习惯长时间运行的命令行提示符是“nohup”,所以你的情况是这样的
nohup java -jar test.jar &
&是重要的,所以你可以得到另一个shell运行。 我相信这不会持续重启。
如果“始终”是指机器启动时启动,则需要将其作为启动时脚本的一部分启动。 肮脏的方式来做到这一点是添加
java -jar test.jar> / dev / null 2>&1&
到/etc/rc.local(或用你最喜欢的日志文件replace/ dev / null)。
更好的做法是创build一个init.d脚本,从适当的运行级别开始(例如,您可能不希望运行级别为0,1或6)。 这样,你也可以让它自动重新启动,如果它死了,并有一个更好的界面来暂时停止它。
小示例在http://www.howtoforge.com/forums/archive/index.php/t-3628.html
http://developer.novell.com/wiki/index.php/Writing_Init_Scripts中的重要解释
java -jar test.jar &
&运算符将强制进程在后台运行,之后您可以运行“top”命令来查看它正在运行。
你可以在Linux的后台运行任何任务,在命令行末尾附加一个'&'符号,例如
java -jar test.jar &
您可以使用以下Java社区版本的Java Service Wrapper:
http://wrapper.tanukisoftware.org/doc/english/download.jsp
然后你可以让它在重新启动时开始:
http://wrapper.tanukisoftware.org/doc/english/launch-nix-boot-debian.html
把&放在最后: java -jar test.jar &