Xsession :warning:unable to write to /tmp; X session may exit with an error问题解决

1.问题描述

         今天使用PX2进行测试的时候,发现系统启动后在登录页面输入密码后竟然登录不了系统。并且多次操作还会出现下面页面的提示。

于是网上搜索弹框中的内容:Xsession :warning:unable to write to /tmp; X session may exit with an error 

根据网上这个链接

https://www.experts-exchange.com/questions/26782995/Xsession-warning-unable-to-write-to-tmp.html

的提示,初步怀疑可能是磁盘空间占满了导致登录不了系统。那么就试试删除里边占用空间比较大的文件来释放空间呗。可是,怎么登录进系统呢?

2.登录系统操作

因为不能直接登录,那么就得想其他办法。

首先想到的是命令行,尝试ctrl+alt+f1,可是操作后屏幕蓝屏了,并没有进入命令行模式。

于是尝试了ssh方法。在局域网中查到PX2的IP地址后,在另一台电脑上进行ssh远程登录,果然奏效。

登录PX2系统后,先使用下面命令查看系统磁盘空间占用情况:

df -lh

一查看,果然是磁盘空间占满了。

那么,这种情况下要删除哪些文件来释放空间呢?

一般情况下,都是先删除我们自己清楚的,不需要的文件。但是,这些文件真的能释放足够的空间吗?

这时候,我们其实可以对系统中的磁盘占用情况分析一下,看看哪些地方占的最多。从占用空间最多的文件开始删除会快速释放出空间来。最笨的办法,可以先从根目录开始使用下面命令查看空间。

 sudo du --max-depth=1 -h

这时候,如果发现哪个目录占用空间比其他的都大出好多,就再进入这个目录下,还是用上边的命令来查看。这样一层一层来查看,就可以找到占用空间很大可能已经没什么用的文件。

我这个问题查到最后,发现是ROS的日志文件占用了很大的空间,nvidia这个用户名下的ros log文件占用了5.8G空间,而root用户下的ros log占用了13G空间,这太可怕了。。。。于是将这些日志删掉。这时候再给PX2断电重启的时候,果然能够顺利进入系统了。

3.ROS系统的日志

ros系统使用的时候,需要先开启主节点(也就是master),各个节点之间的message通信就是通过master来进行的。一般使用roscore来启动主节点,这时候ros系统会自动存储相关日志,一般位于/home/username/.ros/log/目录下。只要使用ros系统,就会才这个目录下存入日志文件,长久积累就会产生大量日志文件占用磁盘空间。

ros中提供了rosclean purge命令来删除ros运行过程中产生的log文件,效果如下:

zhuwsh@zhuwsh-TM1705:~/.ros/log$ rosclean purge 
Purging ROS node logs.
PLEASE BE CAREFUL TO VERIFY THE COMMAND BELOW!
Okay to perform:

rm -rf /home/zhuwsh/.ros/log
(y/n)?
y
zhuwsh@zhuwsh-TM1705:~/.ros/log$

实际上,在使用roscore命令启动ros主节点的时候,会检查log文件的大小,如果log日志占用>1GB,就会给出告警。所以,平时如果告警了,就尽快用rosclean purge命令来删除一下日志文件,避免产生不必要的麻烦。

发布了72 篇原创文章 · 获赞 190 · 访问量 15万+

猜你喜欢

转载自blog.csdn.net/moyu123456789/article/details/90483108
今日推荐