gpt4 book ai didi

java - Bash 脚本子进程锁定 Java 应用程序/控制台

转载 作者:行者123 更新时间:2023-12-01 04:52:50 25 4
gpt4 key购买 nike

我有以下简单脚本(test.sh):

    #!/bin/bash
tail -f /var/log/dmesg > /tmp/output.log &
echo "THE END"
exit 0

从 java 程序(在 ssh 下远程)调用此 test.sh 脚本后,java 控制台 (eclipse) 保持锁定状态。然后,1)如果我手动终止服务器中的“tail -f/var/log/dmesg >/tmp/output.log”进程,控制台将解锁,并且我会在控制台中收到“THE END”消息。2)如果我从脚本中删除“tail -f/var/log/dmesg >/tmp/output.log”并运行java应用程序,则不会发生锁定,并且我在控制台中收到“THE END”消息。

是否有人通过 test.sh 在 bg 中运行 tail -f,并继续 java 应用程序流程?

最佳答案

尝试使用 nohup:

nohup tail -f /var/log/dmesg > /tmp/output.log &

SSH 有时会等待所有进程关闭 tty,然后再退出。 nohup 会将 stdin 设置为 /dev/null 并将 stdout/stderr 设置为文件,因此 SSH 可以立即退出(刷新任何可能阻止“THE END”显示的缓冲区) )。

关于java - Bash 脚本子进程锁定 Java 应用程序/控制台,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14651920/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com