将非 tmux 窗口发送到 tmux

iso*_*mes 1 process tmux

我有几个终端打开。我想将这些终端中的进程发送到tmux会话,而不是在 下保存、关闭、重新启动tmux,然后将进程恢复到当前所处的状态。

如何将正在运行的非 tmux 进程附加到tmux会话?

spi*_*ehr 5

reptyr应该做那个工作。见github

找出要转移的作业的进程 ID。我通常通过键入来做到这一点

ps -p | grep programname
Run Code Online (Sandbox Code Playgroud)

然后转到 tmux 会话,窗口,窗格,...并插入:

reptyr PID
Run Code Online (Sandbox Code Playgroud)

PID您刚刚发现的进程 ID在哪里。

此工作流程应该是可编写脚本的。

如果出现一些消息,则表明它不起作用:

Unable to attach to pid 4625: Operation not permitted
The kernel denied permission while attaching
...
Run Code Online (Sandbox Code Playgroud)

以 root 身份输入以允许上述操作:

echo 0 > /proc/sys/kernel/yama/ptrace_scope
Run Code Online (Sandbox Code Playgroud)