设置 .screenrc 文件时遇到困难:

设置 .screenrc 文件时遇到困难:

我广泛依赖 screen 进行开发和服务器管理。在服务器重新启动的罕见情况下,我必须手动重建屏幕会话,并且我知道.screenrc自动启动屏幕会话的方法,但我从未能够让它工作。我尝试使用非常简单的命令进行测试,这些命令有效,但它们在单个屏幕会话中创建了两个相同的窗口。更复杂的命令 - 我实际上需要 - 导致屏幕终止。

我在 Ubuntu 20.04.2 服务器上,Screen version 4.08.00 (GNU) 05-Feb-20

我的.screenrc文件很简单,是一个修改版本这个答案

# don't display the copyright page
startup_message off

# increase scrollback buffer size
defscrollback 10000

# create windows
screen -t test1 ls $HOME/

然而,当我source .screenrc甚至只是screen在终端中输入时,我会得到以下输出,这表明我的屏幕版本不知道我要求它做什么:

~$ source .screenrc
startup_message: command not found
defscrollback: command not found
[screen is terminating]

当我使用 screen 时,我每次都会手动将其设置为执行以下任务:

  • 在journalctl中跟踪特定服务
  • 在虚拟环境中打开Python的IDLE
  • tail 特定目录中的日志文件
  • 运行docker exec命令以在容器中打开 shell

当我修改.screenrc为使用以下 .screenrc 条目来尾随特定服务文件时...

screen -t journalctl journalctl -u my-service-name.service -b -n 100 -f

Screen 将运行,但它会在 screen 会话中创建两个窗口,这两个窗口都运行上面的journalctl 命令。

我在设置上述任务时遇到的其他问题:

  • 尝试在屏幕内激活我的 python 虚拟环境时出现错误消息:

    screenrc中的命令是:screen -t python3 . $HOME/my-project-dir/venv/bin/activate

    屏幕上的错误是: Cannot exec '.': Permission denied

  • 尝试让 screen 运行该docker exec命令只会导致 screen 终止且没有输出。

相关内容