我有一堆服务器,我在上面运行实验使用screen。操作步骤如下:
screen
ssh
当实验正在运行时,我可以通过sshing到所有服务器并列出我正在运行的进程(使用top或ps)轻松地找到它们在哪些服务器上。
top
ps
然而,一旦实验完成,我如何才能找到在哪些服务器上打开了屏幕会话(以便我可以查看输出,重新启动它们,等等)?
PS:我的实验也把它们的输出打印到文件中…但这不是我问题的重点。
命令屏幕附些可能是你想要的。
参见男人。
我不太确定你的问题,但如果你真正想要的是列出当前打开的屏幕会话,请尝试:
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 ..
这是一个相当出色的Unix使用,将Unix Sockets包装在文件系统权限中,以处理安全性、状态和流。
所以你是在用屏幕让实验在后台运行,还是什么?如果是这样,为什么不直接在后台启动呢?
./experiment &
如果你问如何通知我所做的工作,如何将实验与邮件命令连接在一起?
./experiment && echo "the deed is done" | mail youruser@yourlocalworkstation -s "job on server $HOSTNAME is done"
很多人已经指出了这一点
$ screen -ls
会列出屏幕会话。
这是另一个可能对你有用的技巧。
如果您将以下命令添加为.bashrc . xml文件中的最后一行 文件,然后它将自动重新连接到您的
screen -d -r
希望对你有用。
这就是为什么我转而使用这样的脚本:ps auxw|grep -i screen|grep -v grep
ps auxw|grep -i screen|grep -v grep
在大多数情况下,screen -RRx $username/就足够了:)
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
For windows system Open putty then login in server
如果你想在控制台看到屏幕,那么你必须写命令
Screen -ls
如果你必须访问屏幕,那么你必须使用下面的命令
screen -x screen id
在命令行中写入PWD来检查您当前所在的文件夹
PWD
ps x | grep屏幕
如果您使用了该命令,可以查看该屏幕正在运行什么
screen -A -m -d php
您可以使用以下命令。
screen -list
(或)
screen -R
简单的指南来记住…
screen创建一个屏幕
screen -list列出所有分离的(正在运行的)屏幕及其屏幕id。
在这张图片中-
6764.分- 1. v1091330
是屏幕ID。
screen -x [screen id] -连接/附加到特定的运行屏幕。
screen -x [screen id]
Ctrl + D -在屏幕中终止/停止屏幕运行。
Ctrl + D
Ctrl + A, Then press D -在屏幕中从屏幕分离而不干扰它。
Ctrl + A, Then press D
killall screen分离或终止所有屏幕。
killall screen