linux - 如何列出正在运行的屏幕会话?
我有一堆服务器,我使用ssh运行实验。程序如下:
ssh到服务器XXX
发布ssh
在几个标签中开始实验
分离ssh
断开与服务器的连接
在实验正在运行时,我可以通过ssh到所有服务器并列出我正在运行的进程(使用top或ps)轻松找到它们所在的服务器。
但是,一旦实验完成,我怎么能找到我打开屏幕会话的服务器(这样我可以查看输出,重新启动它们等)?
PS:我的实验也会将输出打印到文件中......但这不是我的问题。
9个解决方案
361 votes
要列出用户的所有屏幕会话,请以该用户身份运行以下命令:
screen -ls
要查看特定计算机上的所有屏幕会话,您可以:
ls -laR /var/run/screen/
我在我的机器上得到这个:
gentle ~ # ls -laR /var/run/screen/
/var/run/screen/:
total 1
drwxrwxr-x 4 root utmp 96 Mar 1 2005 .
drwxr-xr-x 10 root root 840 Feb 1 03:10 ..
drwx------ 2 josh users 88 Jan 13 11:33 S-josh
drwx------ 2 root root 48 Feb 11 10:50 S-root
/var/run/screen/S-josh:
total 0
drwx------ 2 josh users 88 Jan 13 11:33 .
drwxrwxr-x 4 root utmp 96 Mar 1 2005 ..
prwx------ 1 josh users 0 Feb 11 10:41 12931.pts-0.gentle
/var/run/screen/S-root:
total 0
drwx------ 2 root root 48 Feb 11 10:50 .
drwxrwxr-x 4 root utmp 96 Mar 1 2005 ..
这是一个相当出色的Unixy用途,包含在文件系统权限中的Unix套接字,用于处理安全性,状态和流。
joshperry answered 2019-03-12T18:12:01Z
19 votes
命令屏幕列表可能是您想要的。
见男人
Zoredache answered 2019-03-12T18:12:33Z
13 votes
虽然joshperry的回答是正确的,但我发现它并没有告诉你屏幕名称(你用-t选项设置的那个),这实际上就是你用来识别会话的东西。(当然,这不是他的错,这是一个屏幕的缺陷)
这就是为什么我改为使用这样的脚本:ps auxw|grep -i screen|grep -v grep
o0'. answered 2019-03-12T18:13:06Z
6 votes
我不确定你的问题,但如果您真正想要的是列表当前打开的屏幕会话,请尝试:
screen -ls
skinp answered 2019-03-12T18:13:31Z
6 votes
For windows system
Open putty
then login in server
如果要在Console中查看屏幕,则必须编写命令
Screen -ls
如果你必须访问屏幕,那么你必须使用以下命令
screen -x screen id
在命令行中写入PWD以检查您当前在哪个文件夹中
Ankit jain answered 2019-03-12T18:14:10Z
3 votes
在大多数情况下,screen -RRx $username/就足够了:)
如果您仍想列出所有屏幕,请输入以下内容您的路径中的脚本并将其称为屏幕或您喜欢的任何内容:
#!/bin/bash
if [[ "$1" != "-ls-all" ]]; then
exec /usr/bin/screen "$@"
else
shopt -s nullglob
screens=(/var/run/screen/S-*/*)
if (( ${#screens[@]} == 0 )); then
echo "no screen session found in /var/run/screen"
else
echo "${screens[@]#*S-}"
fi
fi
除了显示所有屏幕会话外,它的行为与屏幕完全相同,当给出选项-ls-all作为第一个参数时。
ObiWahn answered 2019-03-12T18:14:49Z
3 votes
多个人已经指出了这一点
$ screen -ls
会列出屏幕会话。
这是另一个可能对您有用的技巧。
如果将以下命令添加为.bashrc中的最后一行在服务器xxx上的文件,然后它将自动重新连接到您的登录时的屏幕会话。
screen -d -r
希望你觉得它有用。
samurai answered 2019-03-12T18:15:38Z
0 votes
ps x | grep SCREEN
在您使用该命令的情况下查看该屏幕的运行情况
screen -A -m -d php make_something.php
theworlddecoded answered 2019-03-12T18:16:18Z
-2 votes
所以你使用屏幕来保持实验在后台运行,或者是什么? 如果是这样,为什么不在后台启动呢?
./experiment &
如果你问如何获得通知我完成的工作,那么如何将实验与邮件命令串联起来呢?
./experiment && echo "the deed is done" | mail youruser@yourlocalworkstation -s "job on server $HOSTNAME is done"
JosefAssad answered 2019-03-12T18:16:50Z