我正在使用 urxvt 并运行屏幕。我的问题:
有任何想法吗?
# terminfo and termcap for nice 256 color terminal
# allow bold colors - necessary for some reason
attrcolor b ".I"
# erase background with current bg color
defbce "on"
#terminfo rxvt-256color 'Co#256:AB=\E[48;5;%dm:AF=\E[38;5;%dm'
#terminfo screen 'Co#256:AB=\E[48;5;%dm:AF=\E[38;5;%dm'
# Skip the startup message
startup_message off
term xterm
screen
title VIM …Run Code Online (Sandbox Code Playgroud) 我最喜欢的模式之一screen是使用该-x选项,其中多个用户可以连接到同一个会话(非常适合团队故障排除和培训目的)。
但是,如果有一种方法可以仅观看会话,而不是意外地输入它(当您只想查看正在发生的事情而不想参与(可以这么说)时),那就太好了。
有没有办法用screen或类似的工具来做到这一点?
我试图保持尽可能低的带宽 - 一些用户/观众可能非常遥远,因此 VNC 连接会非常慢(此外,如果它是无头机器,VNC 将无法工作,因为它需要 X 服务器, AFAIK)。
如果我在screen会话中运行程序,然后分离屏幕 - 程序的调度优先级是否较低?
screen有一个名为 Zombie Mode 的功能,这使得当屏幕(tmux术语中的窗口或窗格)的进程停止时,窗口不会关闭 - 它只是停留在那里直到重新启动,而不是关闭。有没有办法做到这一点tmux?
我用例是,我开始了一些在我不同的窗格地方发展服务器tmux.conf,但如果我要C-c他们一个重新启动它,我不希望这样的窗格中消失。
我试图测量无线 802.11s 网状连接上两台计算机之间的带宽、数据包丢失、延迟和抖动。
我正在尝试制作一个(我的第一个)bash 脚本,它可以执行以下操作:
ptpd、tcpdump、iperf)记录数据。iperf我自己的电脑上传输结束后,它应该SSH到远程计算机并杀死服务。这个想法是在 for 循环中运行这三个步骤,这会增加 iperf 为每次迭代传输的包大小并记录结果数据。
我知道如何通过ssh host@adress process.
然而,我对如何通过 SSH 和注销启动多个进程一无所知,因为一旦我注销,这些进程就会终止。我看过screen和nohup命令,但不知道如何在脚本中使用它们。
提前致谢!
编辑:
感谢到目前为止的所有帮助。
我现在让 nohup 开始工作,正如人们指出的那样,这很简单。所以现在我得到了:ssh host@adress nohup ./script.sh > /dev/null 2>&1 &在我的主电脑上的脚本中。这会在远程电脑上启动一个脚本就好了,然后注销 SSH。下一个问题是如何在远程 pc 上作为 sudo 执行脚本,因为 tcpdump 需要这样做。
尝试ssh host@adress **sudo** nohup ./script.sh > /dev/null 2>&1 &不起作用。
有任何想法吗?
编辑2:
如果有人遇到同样的问题,我找到了如何解决这个问题的指南:
http://www.pantz.org/software/ssh/using_ssh_and_sudo_instead_of_root_for_remote_commands.html
我的大学在他们的 AFS 上为每个学生提供了一个可通过 SSH 访问的目录。有一个(轻量级)CLI 驱动的软件,我想在大学里持续运行。
我以为我可以通过 SSH 通过屏幕运行软件,分离,然后在需要访问 CLI 时从任何其他 SSH 会话重新连接。但是, screen 和 tmux 不起作用,因为它们的功能依赖于套接字,并且不能在 AFS 空间上创建套接字。(见https://bugzilla.redhat.com/show_bug.cgi?id=676663)
我的帐户没有特权,但可以访问可用于在本地编译和运行事物的工具链。
有什么好的解决办法吗?
如何调用Ctrl-a在 Linux 终端会话中。我正在尝试使用屏幕共享屏幕。
打开多用户的命令是Ctrl- A:multiuser on ,我知道如何按键盘上的Ctrl+a但Ctrl-的命令行版本是a什么?
我将如何键入Ctrl- A:multiuser on,而没有 Linux 告诉我找不到该命令?
我有几个屏幕会话,每个会话都运行一个 Java 应用程序。
例如,我有这 3 个屏幕会话:
7361.ARM48 (Detached)
7397.ROP90 (Detached)
7314.ARM22 (Detached)
Run Code Online (Sandbox Code Playgroud)
这是 ps -A 的输出
7314 ? 00:00:00 screen
7329 pts/1 00:00:16 java
7361 ? 00:00:00 screen
7375 pts/2 00:00:02 java
7397 ? 00:00:00 screen
7411 pts/3 00:00:02 java
Run Code Online (Sandbox Code Playgroud)
有没有办法可靠地检测每个屏幕会话是否正在运行他们的 Java 应用程序?
我环顾了屏幕 Linux 手册,但找不到任何可以显示屏幕会话子进程的屏幕命令(http://linux.die.net/man/1/screen)
我正在运行一个分离的screen会话,并使用 向其中运行命令screen -X,如下所示:
screen -S $SESSION -X <command>
Run Code Online (Sandbox Code Playgroud)
这很好用,但我希望能够在不进入屏幕的情况下捕获命令的输出。有什么方法可以从命令行转储历史记录?
作为一种解决方法,我尝试通过执行以下操作来打开会话日志
screen -L -S $SESSION -X <command>
Run Code Online (Sandbox Code Playgroud)
但它似乎没有创建日志文件。
那么,总而言之,是否可以转储正在运行的分离屏幕会话的屏幕历史记录,或者是否可以打开和关闭正在运行的分离会话的日志记录?
我已经设置.bashrc为自动screen -DRA(即使它是本地会话)。
screen工作正常,除了如果我exit从最后一个窗口运行或以其他方式从客户端本身关闭它,它会在关闭之前暂停大约 20 秒。任何想法为什么?
旁注:我遇到的另一个可能是独立的、可能相关的问题是,每当启动 shell 时,我都会看到消息“从屏幕内部连接?”
我使用的是 Cygwin Setup.exe 版本 2.871(64 位)、GNU bash 4.3.39(2)-release 和 xfce4-terminal 0.6.3。