微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

运行&bg时,Linux csh脚本将暂停tty输出

我有奇怪的行为,我有运行java过程这样的csh文件

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应用程序打开命令行

如何locking文件以避免使用NIO软件包进行删除

一个奇怪的是,如果我写包装脚本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访问Windows COM方法方法

你知道一个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] 举报,一经查实,本站将立刻删除。

相关推荐