我正在尝试screen设置我的xterm标题。我在 之外工作screen,但screen在我开始时保留任何标题。这是我的.bashrc:
函数 bash_prompt_command() {
# $PWD 应该保留多少个字符
本地 pwdmaxlen=25
# 表示有dir truncation
本地 trunc_symbol=".."
本地目录=${PWD##*/}
pwdmaxlen=$(( ( pwdmaxlen < ${#dir} ) ? ${#dir} : pwdmaxlen ))
NEW_PWD=${PWD/#$HOME/\~}
本地 pwdoffset=$(( ${#NEW_PWD} - pwdmaxlen ))
如果 [ ${pwdoffset} -gt "0" ]
然后
NEW_PWD=${NEW_PWD:$pwdoffset:$pwdmaxlen}
NEW_PWD=${trunc_symbol}/${NEW_PWD#*/}
菲
导出 NEW_PWD
}
PROMPT_COMMAND=bash_prompt_command
# 颜色图表@ http://wiki.archlinux.org/index.php/Color_Bash_Prompt
案例“${TERM}”在
"xterm")
标题栏='\[\033]0;\u@\h > ${NEW_PWD}\007\]'
PS1="${TITLEBAR}\[\e[1;32m\][\e[0;36m\]\u\e[1;32m\]@\e[1;33m\]\h\e[ 1;32m\]] \e[0;37m\]\${NEW_PWD}/ \e[1;32m\]\$ \[\e[0m"
;;
“屏幕”)
标题栏='\[\033]0;\u@\h > ${NEW_PWD}\007\]'
ESC='\[\ek\e\\\]'
PS1="${TITLEBAR}\[\e[1;32m\][\e[0;36m\]\u\e[1;32m\]] \e[0;37m\]\${NEW_PWD} / … 我想在屏幕会话中启动一些应用程序,但是从脚本中启动。
如果没有脚本,我只会启动屏幕,然后用 crtl-ac 打开 N 个窗口并在每个窗口中执行程序。
我尝试了以下
screen -d -m -S test
screen -S test -X exec tail -f /var/log/messages
screen -S test -X screen
screen -S test -X exec tail -f /var/log/xinetd.log
Run Code Online (Sandbox Code Playgroud)
但是当我附加会话尾部时,它没有运行。如果我紧接着附加会话screen -d -m -S startup并screen -S startup -X exec tail -f /var/log/messages从另一个终端运行它就可以工作。
我错过了什么 ?
在 AlexD 回答后编辑:
一个半工作的解决方案是
screen -d -m -S test tail -f /var/log/messages
screen -S test -X screen tail -f /var/log/xinetd.log
Run Code Online (Sandbox Code Playgroud)
使用该命令链接屏幕命令(-X 之后的那个)在 exec 时正在工作,这可能是因为 exec 期望定义当前窗口,而在分离屏幕时没有当前窗口。感谢AlexD …
服务器运行良好,但当我执行 RDC 屏幕时,屏幕仅为黑色。这之前发生过,我通过 KVM/IP 关闭服务器电源来修复它,但我不想再这样做了。我该如何解决这个问题。
操作系统:Windows Server 2008 R2 网络版 SP1
我使用腻子并且无线连接不可靠,因此我使用屏幕来保持工作正常进行。通常我会断开连接,然后我无法重新连接我的屏幕。我会跑screen -D -RR,它会无限期地坐在那里。我试图ctrl+z让我的控制台回来,ps aux | grep screen然后kill -9是所有结果,然后screen -D -RR再一次,但我得到了相同的结果。我尝试了你想提到的 d 和 r 的任何组合,但它仍然只是坐在那里。我的屏幕在那里,它不会做任何事情,尤其是恢复。
有人对如何让我的屏幕会话恢复有任何提示、技巧或想法吗?
我知道这是可能的,但我终生无法弄清楚如何在分割区域模式下使用一个窗口启动屏幕?
即:我将屏幕设置为在启动时打开多个窗口,但希望将窗口 0 分成两个区域,并在每个区域运行一个应用程序
我们在远程服务器上有一个长时间运行的进程,该进程不时手动启动。不幸的是,互联网连接中断、内核恐慌以及用于连接和启动工作的 ssh 会话可能会遇到许多其他挑战。
Screen 似乎是确保过程不被中断的完美方式。然而,依靠一个人总是记得启动屏幕然后运行脚本来启动进程是一个等待发生的问题。有没有办法从脚本中检查脚本是否在屏幕内被调用?如果是,则该过程将继续,否则脚本将退出并显示一条消息,指示用户首先运行 screen。
我已经开始玩 GNU Screen 设置了。
GNU Screen 中的 hardstatus 和 caption 有什么区别?
hardstatus似乎出现在终端的底部,但我什至不知道到底caption是什么。
我开始了一个大操作,但我没有开始屏幕会话,所以我不能在不取消操作的情况下断开连接。
有没有办法注入屏幕,以便操作继续并将其输出发送到屏幕会话,我可以安全地断开我的 ssh 会话?
CentOS 6.0 能够将其 TERM 设置为screen-256color. 但是,它在 CentOS 5.7 中不起作用。
如何让 CentOS 5.7 支持screen-256color?
我想开始屏幕分离会话,但我想评估一些 bash。似乎 screen 只支持可执行文件和二进制文件。我想做一些魔法,比如:
screen -d -m script.sh 2>&1 | tee logfile.log
Run Code Online (Sandbox Code Playgroud)
但这显然不起作用。引用在这里没有帮助。我唯一的想法是创建一个包装脚本来执行此重定向,然后直接调用它,例如:
screen -d -m wrapper_script.sh
Run Code Online (Sandbox Code Playgroud)
还有其他想法吗?谢谢。