agetty --noclear tty1进程不结束导致树莓派ubuntu的cpu占用率高

博主的树莓派4b安装ubuntu server18.04图形桌面后,开机未操作CPU占用率达30%,经排查是agetty --noclear tty1进程占用一个核100%。最初怀疑自动登录设置问题,后又尝试修改配置文件,最终发现是开机启动项冲突,禁用相关启动项后问题可能解决。

我的树莓派4b安装了ubuntu server18.04图形桌面

在某次修改了raspi-config里的boot option为开机进入桌面且自动输入密码后

开机后啥也没干,cpu占用率达到了30%

可以用task manager查看cpu占用情况,也可以用指令htop查看。如下

一看是一个叫agetty --noclear tty1的进程占用了cpu某一个核的100%

一查发现,有时候在 "ps aux" 命令的输出中,可以看到以下进程:

/sbin/agetty --noclear tty1 linux

这个进程是怎么来的?

在系统起来之后,屏幕上会出现一个登录框,这个登录框就是这个 agetty 整出来的。在登录之后,这个进程就自动退出了。

同理,当按下 Ctrl + Alt + F1/2/3/4/5/6 的时候,画面里出现的登录界面也是agetty整出来的。

可是我都登陆进去了,为啥agetty还不退出呢。

那说明tty1没登录进去呗。图形界面是tty7,如果按Ctrl + Alt + F1进入tty1的登陆界面,你会发现它卡住了,没有出现输入账户密码的提示。

后来我想起来,我曾经修改过raspi-config里面的开机登录方式为自动登录,如下

sudo raspi-config

里面会让你选开机是打开桌面,还是打开console,并且需不需要自动登录。

事实证明,这个自动登录是没用的,可能系统也不知道你的登录密码,因此一直就登不进去,tty1就卡在登录界面导致cpu占用高。

因此在raspi-config里面把登录方式改回desktop或者console就行了,不要选自动登录!

-------------------------------------------------分界线------------------------------------------------------------

更新:

好像不是登录选项的问题。

1、临时解决方法:每次开机后htop找到占用cpu多的那一项的PID号,sudo kill xxx 

2、 修改/boot/firmware/nobtcmd.txt,删掉里面的console=tty1 ,从根本上关掉这个串口控制台

 

-------------------------------------------------分界线------------------------------------------------------------

再更新:

好像也不是nobtcmd.txt的问题。

我想起之前为了关闭开机蓝牙而设置systemctl开机自启项时,顺手打开了一个叫autologin@.service的启动项。

表现为在/etc/systemd/system/getty.target.wants下面新建了一个叫auto@tty1.service的启动项,它和该文件夹里的默认文件getty@tty1.service一模一样。

可能两个在开机的时候冲突了。autologin@.service的设置完全没必要而且没用。

查看开机启动项有哪些可以用

sudo systemctl list-unit-files

或者筛选一下,看看哪些是开机启动的。

sudo systemctl list-unit-files | grep enabled

然后disable可以禁用启动项,stop可以停止已经开启的服务。

sudo systemctl disable autologin@.service

此时在在/etc/systemd/system/getty.target.wants下面的auto@tty1.service文件也自动删除了。

重启,可能就好了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值