我需要并行运行 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/