linux - screen 记录无法在 ssh 终端上运行

标签 linux logging debian gnu-screen

我想在 debian linode 服务器上运行“screen”,通过 ssh 终端窗口启动。我想要一个 shell 脚本来启动和分离 screen ,以便在我注销时进程可以继续。我还希望生成日志文件 screenlog.0,以便在进程崩溃时有记录。

但是在写入日志文件时出现问题。在本地,在 Mac 终端窗口上,

% screen -dm -L sh -c 'echo hello'

工作正常,“hello”被写入 screenlog.0。但是在 ssh 窗口中向服务器发出的相同命令会执行,但不会写入任何内容。 但是,如果在该窗口中我进入 screen ,

% screen -L

然后做一些事情,事件被写入 screenlog.0(在服务器上)。

我错过了什么?

最佳答案

事实证明 screen() 命令可能有问题。上述命令不会向 'Debian GNU/Linux 9 (stretch)' 下的 screenlog.0 发送任何输出,而 'Ubuntu 14.04.1 LTS' 会向 screenlog.0 写入奇怪的消息:“错误:无法启动服务器!尝试以 root 身份运行!”,即使以 root 身份运行也是如此。 “Linux Mint 18.1”和 MacOSX 正确运行。

有人建议我使用古老的 unix 命令“nohup”来解决分离进程并记录其输出的问题,即使您关闭了 ssh 连接也是如此。通常,当您关闭终端窗口时,信号 SIGHUP 会发送到在那里启动的任何进程。但是

% nohup myprog > logfile.txt &

工作完美。老方法,好方法。

关于linux - screen 记录无法在 ssh 终端上运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54621832/

相关文章:

android - 你如何在Android上记录一个int?

javascript - 从 javascript 在服务器上创建日志条目的最有效方法是什么?

python - Python 代码 AttributeError : 'NoneType' object has no attribute 'title' 问题

linux - Nginx的配置

java - log4j linux 问题 - 日志文件为空

ubuntu - dpkg-query 卸载的 debian 包

linux - Debian 9 wifi 不工作

python - 在 Debian 9 上为 Python3 安装 Matplotlib 时出错

linux - 目录的 ext4 或 btrfs 中是否应该使用内容可寻址路径?

linux - 发现/proc/mounts 的 "true"大小