run_server.csh
#!/usr/bin/tcsh java -Dtest=testparam -cp ${TEST}/lib/device.jar:${TEST}/conf:${TEST}/lib/commons-logging-1.1.1.jar com.device.server
当我像这样运行它:run_server.csh&在Linux中的腻子壳我得到这个按摩:
[2] + Suspended (tty output) run_server.csh
虽然当我运行它没有&符号服务器正在运行并输出其日志按摩到标准输出,但问题是当我按ctr + c的过程中被杀死
使用Java,我怎样才能得到一个Windows机器上的所有本地用户的列表
从Windows密钥库访问中间CA的Java?
我可以让我最小化的Java应用程序对文件进行反应(在Windows上)吗?
从Java应用程序打开命令行
另一个奇怪的是,如果我写包装脚本run_server.csh看起来像这样run_server_wrapper.csh:
#!/usr/bin/tcsh run_server.csh & sleep 5
它确实运行服务器作为bg进程和run_server_wrapper.csh自己得到按摩:
[2] + Suspended (tty output) run_server_wrapper.csh
这里有什么问题 ?
Java程序应该听什么,做一个好的Linux服务?
你知道一个Java库来访问本机的Linux API吗?
Runtime.getRuntime()。exec()的奇怪行为
Java 1.6和Desktop.open()的问题
发生什么事是你把这个过程放在后台,但是它仍然在写给终端。 终端驱动程序不会批准这种行为,并在尝试写入TTY时暂停进程。 当然,显而易见的答案是停止这样做。 如果你把run_server.csh放到后台,你也应该重定向输出,如下所示:
run_server.csh > /path/to/serverlog 2>&1 &
如果您希望程序在后台运行,而您仍然希望看到输出,则通常的解决方案是将输出重定向到日志文件,然后使用tail命令监视日志文件。
tail -f /path/to/serverlog
如果你真的想要在后台运行某些东西,并且仍然能够写入TTY,请关闭tostop标志。
stty -tostop
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。