【问题标题】:Parallel on unix with screen在 unix 上与屏幕并行
【发布时间】:2013-03-06 04:02:39
【问题描述】:

有没有办法并行运行?我可以手动启动屏幕,但我需要启动 30。 我试图手动完成(愚蠢的是),但我在中途感到困惑,并决定我最好问问 stackoverflow。

#!/bin/bash --login
  2
  3
  4
  5
  6   avida=~/avida/cbuild/bin/avida
  7   skeleton_dir=~/cse845/no_pred
  8 # wd=/mnt/scratch/cse845_avida/predator_sim
  9   wd=~/cse845/no_predator_editor_sim_wd
 10
 11 for i in {1..30}
 12 do
 13 screen
 14
 15 
 16   sim_num=${i}
 17   sim_dir=${wd}/sim_$sim_num
 18   mkdir $sim_dir
 19   cd $sim_dir
 20   cp ${skeleton_dir}/*.cfg ${skeleton_dir}/*.org ./
 21   $avida &> avida_log.txt
 22# Here I would like to do the equivalent of exiting screen manually, ^A, d
 23 done

【问题讨论】:

    标签: shell unix gnu-screen


    【解决方案1】:

    这是如何在 shell 脚本中同时启动 3 个(-d -m 在后台启动它们)

    screen -s "name1" -c ~/screen/name1.screenrc -d -m 
    screen -s "name2" -c ~/screen/name2.screenrc -d -m 
    screen -s "name3" -c ~/screen/name3.screenrc -d -m 
    

    然后,您可以在每个屏幕中拥有可变数量的选项卡/窗口,在您的 screenrc 文件中指定。 (带 -t)。

    请参阅旨在与 emacs 配合使用的示例 screenrc 文件:https://github.com/startup-class/dotfiles/blob/master/.screenrc

    这是唯一关于指定每个套接字的选项卡/窗口的部分。

    # 2.3) Autoload two screen tabs for emacs/bash.
    screen -t emacs 0
    screen -t bash 1
    

    所以当你做 screen -ls 你会得到

    There are screens on:
        4149.name1  (07/10/13 22:18:44) (Detached)
        4018.name2  (07/10/13 22:18:23) (Detached)
        3882.name3  (07/10/13 22:17:08) (Detached)
    3 Sockets in /var/run/screen/S-yourid.
    

    如果你想连接到 name1,你会做 screen -r 4149screen -r name1

    【讨论】:

      【解决方案2】:

      我马上看到两件事:

      1. 您缺少必要的反斜杠来转义屏幕命令参数中的换行符。
      2. 您需要告诉屏幕在后台运行。请参阅 -d-m 选项。

      【讨论】:

      • 1.反斜杠来逃避我的换行符?你能详细说明一下吗?我不明白。 2.啊so -d -m 创建一个屏幕但不附加到它 - src slac.stanford.edu/comp/unix/package/epics/extensions/iocConsole/…
      • 我的意思是当你有像screen <newline> cmd... 这样的代码时,bash 会将其解释为对屏幕的调用,没有参数,然后是对 cmd 的调用。你希望它是一回事,所以它必须要么在一条线上,要么像screen \<newline> cmd...
      猜你喜欢
      • 2015-11-30
      • 1970-01-01
      • 1970-01-01
      • 2017-09-29
      • 2017-05-19
      • 2013-03-23
      • 1970-01-01
      • 2015-10-08
      • 2018-05-19
      相关资源
      最近更新 更多