赞
踩
今天使用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
的提示,初步怀疑可能是磁盘空间占满了导致登录不了系统。那么就试试删除里边占用空间比较大的文件来释放空间呗。可是,怎么登录进系统呢?
因为不能直接登录,那么就得想其他办法。
首先想到的是命令行,尝试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断电重启的时候,果然能够顺利进入系统了。
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命令来删除一下日志文件,避免产生不必要的麻烦。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。