Linux终端作为systemd脚本运行一段时间后,会冻结脚本输出



我正在写一个应该在linux主终端TTY1上运行的程序,作为一个"更具交互性"的程序。替换普利茅斯。

一切正常。一两个小时后,显示冻结,直到任何按键被按下,让我们假设我运行一个bash循环显示时间,它在一段时间后消失,只在超时发生时显示最后一次迭代。

我的服务:

[Unit]
Description=Script starter
After=getty.target
Conflicts=getty@tty1.service
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/bin/screen.sh
StandardInput=tty-force
[Install]
WantedBy=multi-user.target

和脚本:

#!/bin/bash
while true
do
sleep 1
clear
date
done

同样的问题是当我运行我在c/ncurses

中编写的程序时

根据你目前的信息,很难说为什么会出现冻结。也许你换了tty,一两个小时后内存就不够用了。也许你的硬件有缺陷(显卡、cpu、ram)。也许,也许…

试着把你的sdtout写在一个文件中,然后带尾读。

#!/bin/bash
clear
while true
do
sleep 1
date >> logFile
done

在另一个控制台试试这个:和

tail -f --retry logfile

-f代表follow

--retry如果文件不可用,它将重试读取它。

我看了一整天,是什么原因导致控制台屏幕死机显示定时器,我找到了原因。

内核参数consoleblank,我将其设置为0并重新安装grub,之后其工作

Idk,它在正常pc上的行为如何,我使用vsphere提供的虚拟控制台

so yest consoleblank=0 + grub install

相关内容

  • 没有找到相关文章