Chrome/Chromium 不会加载任何网站,只会显示“噢,啪!出了问题......”页面。一些子进程出现段错误。
当在终端中启动时,它将显示很多这些:
[...错误:platform_thread_posix.cc(126)] pthread_create:资源暂时不可用
当 Chrome 仍在运行时,启动另一个程序有时会触发相同的错误:Resource temporarily unavailable
这是在带有 systemd 229 的 Arch Linux 上,但在 Fedora Linux 上也报告了类似的行为。
是什么导致了这些崩溃?
乍一看,进程限制似乎不是问题:
$ ulimit -a
core file size (blocks, -c) unlimited
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 23870
max locked memory (kbytes, -l) unlimited
max memory size (kbytes, -m) unlimited
open files (-n) 1024
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 99
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) 23870
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
答案1
在调查另一个问题时,我可能发现了一些相关的东西。无法切换到另一个 tty (Ctrl + Alt + F2):
A start job is running for Login Service...
事实证明这可能是另一个 systemd 问题,它有其自身的局限性。
创建了以下配置文件,这显然解决了该问题:
# mkdir /etc/systemd/logind.conf.d/
# /etc/systemd/logind.conf.d/systemd-stupid-limits.conf
LimitNOFILE=500000
LimitNPROC=100000
UserTasksMax=100000
重新启动后,Chrome 不再崩溃,并且切换到另一个 tty 可以再次工作。
不确定这是否是正确的解决方案,但到目前为止似乎确实有效。如果有人有更好的想法,请发布答案。
/var/log/daemon.log
为了将来参考,这是在 tty 不工作时登录的:
systemd[1]: Starting Login Service...
systemd[1]: systemd-logind.service: Main process exited, code=exited, status=1/FAILURE
systemd[1]: Failed to start Login Service.
systemd[1]: systemd-logind.service: Unit entered failed state.
systemd[1]: systemd-logind.service: Failed with result 'exit-code'.
systemd[1]: systemd-logind.service: Service has no hold-off time, scheduling restart.
systemd[1]: Stopped Login Service.