标签: gnu-screen

如果屏幕被取消,GNU Screen中的Python最终会变得空闲

我有一个python脚本,它使用多处理和子进程与不同的参数并行启动多个外部命令.代码可以在这里找到.

为方便起见,我在GNU Screen会话中启动此脚本.运行此脚本的计算机有12个处理器,这些处理器在进程变为活动状态之前处于空闲

每个过程需要几个小时到几天才能运行,因此我经常断开与机器的连接并分离屏幕会话.

然而,最近我注意到了一种我以前从未体验过的行为.有几次我回到机器上,发现零负载是空闲的.如果我通过ps ux或获得活动进程列表,或者top我仍然可以在进程列表中找到脚本(和子进程).然后我重新连接屏幕会话以检查程序的状态,并立即将新的一批进程发送到队列,并且系统的负载在几秒钟内返回到12.请注意,除了重新连接屏幕会话之外,我对脚本完全没有任何作用.

我在系统上安装了一个监控工具,结果是一些流程在一段时间后完成并且没有启动新流程.因此系统处于活动状态,直到子进程忙,并且一旦没有更多的作业从队列中释放就变为空闲.

所以我的问题是,有没有人知道解释这种行为的任何原因?

编辑:大约一年后,这个问题不再可重现,无论是屏幕上的一些补丁还是python本身.我接受了答案,因为它为测试提供了良好的指导.

python subprocess gnu-screen multiprocessing idle-processing

9
推荐指数
1
解决办法
553
查看次数

Gnu-Screen:运行脚本,将命令发送到正在运行的屏幕会话

是否有可能编写一个脚本来更改名称并打开当前选项卡的监视,假设它正在屏幕上运行?

谢谢.

bash gnu-screen

8
推荐指数
2
解决办法
1万
查看次数

编写脚本以关闭屏幕会话

我在我的机器上运行了一堆屏幕会话,但所有屏幕会话都是分离且不需要的.有没有一种方法可以关闭所有这些,所以当我输入"screen -ls"时我什么都没有?

bash scripting gnu gnu-screen detach

8
推荐指数
1
解决办法
3271
查看次数

脚本完成后退出屏幕

当我在屏幕上启动的脚本完成后,我可以告诉它关闭它所在的当前屏幕吗?如果是这样的话?我知道我可以做"ctrl + a"然后k,然后是y.杀死它但我不在那里发出那些按钮.我尝试将"exit"添加到脚本的末尾,似乎并没有关闭它.

我还有一个脚本会在屏幕上自动启动另一个脚本,这似乎有效,但我不是100%确定我的所有语法都正确吗?

screen -dm -S "script0$scriptID"; sleep 1; screen -S "fscript0$scriptID" -X screen ./script.sh "$input1" "$input2"
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助.

linux bash shell gnu-screen

8
推荐指数
1
解决办法
3816
查看次数

启动屏幕(unix命令)+在1命令中运行命令?

想知道如何启动命令,例如:

while :; do ./myCommand; done;
Run Code Online (Sandbox Code Playgroud)

但不是做平时

screen -S nameOfMyScreen
Run Code Online (Sandbox Code Playgroud)

然后命令

while :; do ./myCommand; done;
Run Code Online (Sandbox Code Playgroud)

然后拆下屏幕

^a ^d (Control "a" the control "d"
Run Code Online (Sandbox Code Playgroud)

我希望它能够开始和分离.谢谢!

unix command-line gnu-screen

8
推荐指数
1
解决办法
9957
查看次数

Bash:获取守护进程屏幕会话的PID

如果我作为守护进程启动GNU屏幕会话,我将如何以编程方式检索其PID?我不知道输出screen -ls是多么一致 ,所以我想知道如何使用bash的常量之一$$,$!或者更好的替代方法.

我正在启动屏幕screen -dmS screenname.

如何在开始屏幕会话之前或之后立即获得屏幕的PID?

bash gnu-screen

8
推荐指数
2
解决办法
1万
查看次数

自定义gnu-screen会话日志文件名

我想知道是否有人尝试将他们的gnu-screen会话记录到日志文件中(除了默认的screenlog.N,其中N是会话号).

我尝试过以下操作

~$ screen -L custom_screenlog -S test_session
Run Code Online (Sandbox Code Playgroud)

但屏幕会终止.它不在屏幕手册中.尝试搜索谷歌,我似乎无法看到答案.

谢谢.

gnu-screen

8
推荐指数
1
解决办法
3400
查看次数

Shell GNU-Screen -X Stuff问题

OPTIONS="java -Xms1024M -Xmx1024M -jar craftbukkit.jar"
PROCESS=server01

screen -dmS $PROCESS $OPTIONS nogui             # Starting the application
screen -x $PROCESS -X stuff `printf "stop\r"`   # Closing the application
screen -x $PROCESS                              # Attaching to the terminal of the application
Run Code Online (Sandbox Code Playgroud)

应用程序在开始时工作正常,但是我遇到问题stuff 'printf "stop/r"' 当我刚启动时似乎没有工作,等待一段时间然后尝试使用上面的命令停止它.但奇怪的是,如果我这样做screen -x $PROCESS并且分离(ctrl-A & ctrl-D)然后我使用Stop命令它确实有效.那么,有没有办法解决,以stuff printfscreen -x $PROCESS

linux bash shell printf gnu-screen

8
推荐指数
1
解决办法
3679
查看次数

如何在GNU屏幕中增加回滚缓冲区的大小

如何增加可以查看的行数screen

我想查看从运行screen -S <screen_name>到当前操作时的行.例如,如何将缓冲区长度增加到大约50000行?

我已经尝试了^a :scrollback <number>但它不会增加我在当前终端中可以到达的线路.

gnu-screen

8
推荐指数
2
解决办法
2761
查看次数

byobu没有自动调整和填充窗口

我开始了一个putty窗口,改变了字体,然后做了Windows-Left以使其适合屏幕的左侧,它决定在下面做截图.我发现让它消失的唯一方法是注销/开启,但这显然是不切实际的,并没有解决问题.

我过去曾经拥有它,但不是很糟糕.它通常发生在我移动或调整窗口大小时.是否有设置让它只是默认自动调整大小?

[编辑]然后,关于:05以后突然冒出来,它突然消失了.我只是坐在这里做其他事情,它变回了正常状态.

这个?

gnu-screen byobu

8
推荐指数
1
解决办法
2225
查看次数