linux修改文件权限为rrx,linux - 如何列出正在运行的屏幕会话?

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值