我想在我的 .screenrc 中有以下代码
source /Users/masi/bin/screen/file.screen
Run Code Online (Sandbox Code Playgroud)
但是,我发现不支持在 .screenrc 上采购。
不支持在 .screenrc 中采购?
据我了解,更新到新内核(使用普通linux-image...包,而不是通过自己的包)需要重新启动服务器。
但是,我们的其中一台服务器 (Ubuntu 10.04) 正在运行多个广泛的screen会话。重新启动会杀死那些对它们的所有者来说总是一个主要麻烦的东西(主要是因为丢失的会话历史记录)。
我该怎么办?我看到了几种可能性:
screen会话?我想最终归结为这个问题: 更新内核有多重要?
我在这里而不是 askubuntu.com 发布了这个问题,因为我认为这不是 Ubuntu 特定的问题,尽管该服务器正在运行 Ubuntu。
我们正在尝试为那些离开屏幕会话时间过长并且以某种方式或其他方式绕过我们的会话超时的用户重写一个严酷的屏幕会话杀手。
当前的方法是找到屏幕的pid并杀死它,看起来屏幕程序的编写方式可以挂钩其他用户会话,但是当我尝试以root身份执行任何操作时,屏幕目录是不同的目录。猜测这是出于安全原因,但无论如何要故意覆盖它,以便我可以做类似的事情screen -r somedude/33333 -d -X quit?作为根?
我的 .screenrc 文件中有以下内容:
# Don't display the copyright page
startup_message off
# keep scrollback n line
defscrollback 5000
# setup some screens
screen -t top 0 top -o cpu -s 5
screen -t mysql 1 mysql -u root -p
screen -t shell_screen 2 cd ~/webroot
screen -t report_gen 3 tail -f ~/webroot/path/report_gen_log.txt
shelltitle "$ |bash"
#change the hardstatus settings to give an window list at the bottom of the
##screen, with the time and date and with the current window …Run Code Online (Sandbox Code Playgroud) screen -list 显示
There are screens on:
9531.pts-0.ubuntu (03/02/2011 12:43:34 PM) (Detached)
2101.pts-0.ubuntu (03/02/2011 12:39:17 PM) (Attached)
2219.pts-0.ubuntu (03/02/2011 11:20:56 AM) (Attached)
3 Sockets in /var/run/screen/S-bond.
Run Code Online (Sandbox Code Playgroud)
但是当我打字的时候
screen -r 2101.pts-0.ubuntu
There is a screen on:
2101.pts-0.ubuntu (03/02/2011 12:39:16 PM) (Attached)
There is no screen to be resumed matching 2101.pts-0.ubuntu.
Run Code Online (Sandbox Code Playgroud)
在这里我无法回到屏幕 2101.pts-0.ubuntu 并且事实上我退出了。好像我在哪里
screen -r 9531.pts-0.ubuntu
[detached from 9531.pts-0.ubuntu]
Run Code Online (Sandbox Code Playgroud)
然后在上面你可以看到我进入那个会话然后出来,我可以一次又一次地这样做。但是其他会话不是这样吗?所以我在做什么错误?
我有用语言编写的应用程序Go并且它运行在screen
(我认为问题与Go语言无关。我相信它使用STDOUT和STDERR)
screen -S log_server -d -m go run log_server.go 2 > err3.txt 1 > std3.txt
Run Code Online (Sandbox Code Playgroud)
当它崩溃时,我在屏幕中写入错误,而不是在err3.txt或std3.txt
screen 不滚动并且不允许我阅读完整错误。
std3.txt工作正常
err3.txt,大小为 0 并打印错误screen(我可以看到最后 20 或 30 行)应用程序每 3 或 5 天崩溃一次。
当我使用 screen 命令时,我无法使用 page-up 并且屏幕上只显示 1 页。如果我不使用“屏幕”命令,我可以向上滚动几页。
1) 如何在使用 screen 命令时启用滚动。
2) 虽然不使用 screen 命令,但我只能查看大约 10 个屏幕。我如何增加这个限制?
在将进程作为守护进程运行时,需要采取很多预防措施。在我看来,在 GNU Screen 内运行它是一个可行的选择,因为它保证在注销服务器后运行该进程,在重新登录时可以检查输出等。
从 Screen 内部运行例如 Web 服务器有什么缺点吗?我有一个从 Screen 内部运行的服务器进程,该进程在过去几周内多次无法访问。我立即重新启动了它,所以我不知道它是否因为某些内部问题(相当简单的脚本,所以我怀疑)而死了,或者是 Screen 的错。