QT接口坏了

几天前我遇到了一个奇怪的问题,我不知道该怎么办。 我的一些程序界面最近似乎被打破了。 这很奇怪,因为我没有做过任何重大更新。 在我看来(虽然我不是专家),所有的QT接口都被破坏了(即VLC,Clementine,Skype)。 它真的很烦我,因为我不能使用很多程序。 但是大多数程序和系统本身都运行得很好。

界面看起来有些不完整,所有组件都有错误的尺寸,文本没有出现和用户交互闪烁。 我真的不知道从哪里开始,什么可能导致这样的问题,因为它多年来一直运作良好。

我正在运行Ubuntu 14.04 LTS。

从命令行运行一些程序我得到一个gtk警告Gdk-WARNING **: shmget failed: error 28 。 这似乎是因为共享内存段的东西。 这对我来说真的很奇怪,因为我有点像往常一样使用我的系统。 搜索此错误带来了一些令人困惑的信息。 但是我找不到对我有帮助的解决方案或任何信息。

对于Skype,我已经尝试了解决方案和解决方法从这里没有成功: 如何修复Skype的图形问题,Gdk-WARNING?

编辑:

当我重新启动时,我发现应用程序工作正常。 他们只是在某个时候停止工作……所以关于共享内存的Gdk-WARNING似乎是个问题。 虽然我似乎无法通过关闭所有正在运行的应用程序来释放任何内存。 所以解决方案可能是找到混乱共享内存空间的应用程序?

将JDK从版本7更新到8解决了我的问题。

 sudo apt-get install openjdk-8-jdk 

如果您使用的是14.04或更早版本,则可能需要在安装前手动添加PPA(例如sudo add-apt-repository ppa:openjdk-r/ppa ,尽管没有安全保证!)

接下来,通过以下方式选择新版本:

 sudo update-alternatives --config java. 

您可以通过以下方式检查您的Java版本

 java -version 

它应该打印像openjdk version "1.8.0_45-internal"

我有同样的问题。 你是对的,原因是系统中没有免费的共享内存。

要找出谁正在占用所有共享内存,您可以运行ipcs -m -p 。 在我的情况下,输出是这样的:

 $ ipcs -m -p ------ Shared Memory Creator/Last-op PIDs -------- shmid owner cpid lpid 1277952 weekens 3642 3746 2523137 weekens 4046 4119 1409026 weekens 3696 3343 786435 weekens 3203 1310 1802244 weekens 3887 3919 1900549 weekens 3899 3343 1998854 weekens 3906 3343 2031623 weekens 3872 498 2326536 weekens 3885 17493 2228233 weekens 3885 17493 2261002 weekens 3885 17493 2424843 weekens 3872 498 2555916 weekens 3885 17493 136708109 weekens 3872 498 2719758 weekens 4176 3343 2752527 weekens 4176 3343 2850832 weekens 4573 18066 2949137 weekens 4155 788 2981906 weekens 4155 788 3112979 weekens 4916 4916 3145748 weekens 4916 4916 3178517 weekens 4916 4916 3211286 weekens 4916 4916 3244055 weekens 4916 4916 3276824 weekens 4916 4916 3309593 weekens 4916 4916 3342362 weekens 4916 4916 3375131 weekens 4916 4916 3407900 weekens 4916 4916 3440669 weekens 4916 4916 3473438 weekens 4916 4916 3506207 weekens 4916 4916 3538976 weekens 4916 4916 3571745 weekens 4916 4916 3604514 weekens 4916 4916 3637283 weekens 4916 4916 3670052 weekens 4916 4916 3702821 weekens 4916 4916 3735590 weekens 4916 4916 3768359 weekens 4916 4916 3801128 weekens 4916 4916 3833897 weekens 4916 4916 3866666 weekens 4916 4916 3899435 weekens 4916 4916 3932204 weekens 4916 4916 3964973 weekens 4916 4916 3997742 weekens 4916 4916 4030511 weekens 4916 4916 4063280 weekens 4916 4916 4096049 weekens 4916 4916 4128818 weekens 4916 4916 4161587 weekens 4916 4916 4194356 weekens 4916 4916 4227125 weekens 4916 4916 4259894 weekens 4916 4916 4292663 weekens 4916 4916 4325432 weekens 4916 4916 4358201 weekens 4916 4916 4390970 weekens 4916 4916 .... 4916 PID all the way down 

因此,使用PID 4916的过程最终消耗了所有共享内存(它是IntelliJ IDEA)。 杀死这个过程后,问题就解决了。