这让我抓狂:
我想在远程服务器 (GCloud) 中使用 4 个屏幕窗口(在同一会话内)并行处理 4 个主题。
长话短说:
- 我首先创建一个独立的会话:
gcloud compute ssh server --command "screen -dmS remoteSession"
- 然后我使用以下命令(远程)向该会话添加一个新窗口并启动该过程。最后
screen -X other
是避免更改当前窗口的屏幕(类似于以分离模式创建窗口)。
gcloud compute ssh server --command "screen -x remoteSession -X screen -t window1 ping google.com; screen -X other"
*在本例中,我添加了 ping 命令,而不是我使用的庞大命令。
问题是,当我在 shell 中键入它时,它会起作用,但在脚本中却不起作用。但是,在本地执行此操作时,它可以在脚本中工作(只需执行不带 的命令gcloud compute blabla
)。
远程会话似乎创建得很好。但是执行第二步的时候却只是提示No screen session found
。
有任何想法吗?
答案1
我已经知道发生了什么:
不知何故,当我创建会话时,它是在 中创建的/run/screen/S-uname
,但是当执行第二个命令时,它会在 中查找会话/run/screen/S-root
(实际上没有sudo
在任何一个调用中使用)。
对我来说,快速的答案是使用 sudo 调用第一个命令,允许它在/run/screen/S-root
.
欲了解更多信息,您可以查看这里
干杯!