【问题标题】:View output of a script using screen使用屏幕查看脚本的输出
【发布时间】:2014-12-23 17:26:21
【问题描述】:

我正在尝试同时在分离的屏幕会话中运行多个脚本。

这是我目前拥有的代码。

#!/bin/bash
screen -mdS Name_Screen1 "python /path/to/file/file.py arg1 arg2 arg3"
screen -mdS Name_Screen2 "python /path/to/file/file.py arg3 arg4 arg5"
screen -mdS Name_Screen3 "python /path/to/file/file.py arg6 arg7 arg8"

当键入“screen -list”以查看可用的屏幕时,我没有看到当前正在运行的任何屏幕。此脚本将一些信息输出到屏幕,这取决于给定的参数。我查看了此处发布的一些问题,但找不到答案。

有什么方法可以让我查看这些屏幕的输出,而无需执行 ">out.txt" 之类的操作?

更新

所以我终于想通了。我最终只创建了一个屏幕会话和会话中的多个窗口。

#!/bin/sh
Lum_Types=("Window1" "Window2" "Window3" )
Windowname="Screen_session"
screen -mdS $Windowname
for Lum in ${Lum_Types[@]}
do
    screen -S $Windowname -X screen -t $Lum
    screen -S $Windowname -p $Lum -X stuff $"python /Path/to/file arg1 arg2"
    screen -S $Windowname -p $Lum -X stuff $'\n'
done

一个关键部分是在-X stuff 之后添加$,以便将字符串传递给屏幕会话和窗口。

【问题讨论】:

  • 您没有看到这些屏幕正在运行?您是否以同一用户身份运行screen -list?这些进程是否仍在运行或已退出?
  • @EtanReisner 是的,我正在以同一用户的身份运行 screen -list。如果我先执行“screen -mdS Name_Screen”命令而不执行其余命令,则创建屏幕。但是由于某种原因,当我附加命令的其余部分时,什么都没有出现。
  • 在您检查之前流程是否结束?这些流程是做什么的?您可以手动在屏幕中正确运行它们吗?
  • @EtanReisner 不,每个过程大约需要 1 小时才能完成,因此不应在此之前结束。如果我在屏幕会话中手动运行它们,它们工作正常。脚本将一些语句打印到屏幕上,如果我连接到屏幕上,我可以看到这些语句。顺便谢谢你的帮助
  • 如果您在屏幕会话中运行screen "python /path/to/file/file.py arg1 arg2 arg3",它们会起作用吗?

标签: bash terminal gnu-screen


【解决方案1】:

所以我终于想通了。我最终只创建了一个屏幕会话和会话中的多个窗口。

#!/bin/sh
Lum_Types=("Window1" "Window2" "Window3" )
Windowname="Screen_session"
screen -mdS $Windowname
for Lum in ${Lum_Types[@]}
do
    screen -S $Windowname -X screen -t $Lum
    screen -S $Windowname -p $Lum -X stuff $"python /Path/to/file arg1 arg2"
    screen -S $Windowname -p $Lum -X stuff $'\n'
done

一个关键部分是在-X stuff 之后添加$,以便将字符串传递给屏幕会话和窗口。

——维克多

【讨论】:

    【解决方案2】:

    您需要做的就是将命令的单词分开。

    screen -mdS "Name_Screen1" python /path/to/file/file.py "arg1" "arg2" "arg3"
    

    将它们分组在一个字符串屏幕中不会执行它们,它会立即退出, 这就是它们没有显示在列表中的原因。

    【讨论】:

      猜你喜欢
      • 2011-05-24
      • 2011-08-23
      • 1970-01-01
      • 1970-01-01
      • 2017-12-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多