python - 使用命令自动加载多个 UNIX screen

标签 python unix gnu-screen

我需要并行运行 20 个实验。对于每个,我加载一个新的 unix screen,然后在其中加载一个 anaconda 环境,然后运行带有该实验参数的 python 脚本。

工作流程如下:

> screen -S exp01
> source activate myenv
(myenv) > python process_experiment 01
> screen -S exp02
> source activate myenv
(myenv) > python process_experiment 02

有没有办法编写脚本来自动化它?

最佳答案

根据this question ,您可以将击键发送到 screen session ,如下所示:

screen -dmS new_screen sh
screen -S new_screen -X stuff "cd /dir
"
screen -S new_screen -X stuff "java -version
"

您可以编写一个小型 shell 脚本(我们称之为 run-exp.sh)来设置实验运行:

#!/bin/sh
source activate myenv
python process_experiment $1

然后使用循环启动运行该脚本的 screen session :

#!/bin/sh
for i in $(seq -w 1 20); do
    screen -dmS exp$i
    screen -S exp$i -X stuff "./run-exp.sh $i
"
    # (The new line is necessary, not a mistake.)
done

关于python - 使用命令自动加载多个 UNIX screen ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52105173/

相关文章:

regex - 使用 awk 和 mktime 将文件中的日期替换为时间戳

gdb - 使用gdb在多屏窗口中调试MPI

python - Facebook : How to send a private message as a fanpage using xmpp

python - 访问 PyTorch 中预训练模型中的特定层

linux - linux脚本错误

java - RMI 注册表远程异常错误

python - 使用 Python 绘制一个圆圈并为其中的区域着色?

python - 在Windows上使用pip安装Scipy python包时出错

cygwin - screen 和 Cygwin : no tab completion?

node.js - 如何将命令传递到 screen session ?