我有奇怪的行为,我有运行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
总结以上是内存溢出为你收集整理的运行&(bg)时,Linux csh脚本将暂停(tty输出)全部内容,希望文章能够帮你解决运行&(bg)时,Linux csh脚本将暂停(tty输出)所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)