gpt4 book ai didi

bash - 通过 readreg 和粘贴将输入发送到分离的 'screen' 时出现问题

转载 作者:行者123 更新时间:2023-11-29 12:39:10 25 4
gpt4 key购买 nike

我正在尝试将输入发送到通过 screen 运行的交互式命令。这是我的初始命令

screen -L -c ./customrc -S psql -d -m /opt/PostgreSQL/9.0/bin/psql

以上命令将在 screen 分离模式下运行交互式 psql。 customrc 用于定义输出的日志文件(我将通过轮询从另一个进程读取)

我正在使用以下两个命令将输入​​发送到在 screen 上运行的 psql

screen -S psql -X readreg p psqlcommands.sql
screen -S psql -X paste p

问题是上述命令不起作用,除非我至少重新连接一次 screen 。连接 screen 并分离后,上述命令将按预期工作。我必须通过后台 java 进程启动这些命令,因此交互式 shell (bash) 不可用。我的目标是在交互模式下运行 psql 并将输入传递给它并通过日志文件捕获它的输出。

到目前为止,我已经尝试在附加模式下通过 xterm(或 konsole 或 gnome-terminal)运行 screen ,使用 readreg/paste 然后分离,但我意识到 xterm 在我的生产环境中不可用。我也尝试过将输出发送到/proc//fd/0,但我无法从键盘模拟“ENTER”(我必须附加并按下才能让 psql 接受输出)。我认为管道和 fifo 可能会有所帮助,但我无法弄清楚如何使用 screen 和 psql 继续处理它们。

我感谢任何进一步的提示或解决方法。

谢谢,

乌斯曼。

最佳答案

嗯,你可以用

screen -S psql -p 0 -X stuff $'\n'

或更好(适合我)

screen -S mname -p 0 -X stuff `echo -ne '\015'`
选择窗口需要

-p 0

关于bash - 通过 readreg 和粘贴将输入发送到分离的 'screen' 时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4392584/

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