昨晚我花了很长时间尝试修复我的 nixos 配置但失败了。所以今天我重新开始与现有一代人一起工作,但我所做的事情似乎打破了我的恐惧。
现在,当我运行stack build
编译一些 Haskell 时,我得到:
these paths will be fetched (0.05 MiB download, 0.28 MiB unpacked):
/nix/store/wv1mbc34jaws00lyhgqr6aix5ql0c1r6-bash-interactive-4.4-p23-dev
copying path '/nix/store/wv1mbc34jaws00lyhgqr6aix5ql0c1r6-bash-interactive-4.4-p23-dev' from 'https://cache.nixos.org'...
然后它就挂了。它永远不会产生错误或警告,它只是挂起。我不知道这里出了什么问题。我已连接到互联网,但如果我断开连接并运行它,我会得到完全相同的行为。我尝试了频道更新,但这也没有什么区别。
我尝试四处寻找这个,但是如果没有错误,就很难获得有关我的错误的任何信息。
有什么问题吗?
答案1
我不知道到底是什么问题,但我打开 pstree 查看进程:
|--= 04059 root /nix/store/657mlp757yfixz785sdv9acsak37f5qy-upower-0.99.11/libexec/upowerd
|-+= 01858 root nix-daemon --daemon
| |--= 25318 root nix-daemon 25308
| |--= 24986 root nix-daemon 24976
| |--= 24302 root nix-daemon 24289
| |--= 23922 root nix-daemon 23909
| |--= 23241 root nix-daemon 23231
| |--= 22224 root nix-daemon 22214
| |--= 21139 root nix-daemon 21129
| |--= 19486 root nix-daemon 19467
| |--= 16433 root nix-daemon 16406
| |--= 15640 root nix-daemon 15629
| |--= 15587 root nix-daemon 15575
| |--= 15445 root nix-daemon 15435
| |--= 14495 root nix-daemon 14484
| |--= 14262 root nix-daemon 14252
| |--= 13035 root nix-daemon 13025
| |--= 11311 root nix-daemon 11301
| |--= 09962 root nix-daemon 9951
| \--= 07739 root nix-daemon 7721
这是相当多的 nix 守护进程,这可能不应该是。每次我stack build
再次运行时,我都会注意到树上会出现一个新的 nix-daemon,并且至关重要的是,当我向进程发送一个 sig 术语以退出时,而它似乎在我的终端中退出并显示错误,则进程会挂起。
因此,所有这些过程似乎都是通过调试工作积累起来的。
所以我尝试杀死所有这些进程。我沿着列表逐个杀死了它们,在进程19486
被杀死后,所有剩余的进程都正常退出。
随着这些进程的消失,stack build
现在可以正常工作了。
仍然不知道发生了什么或为什么此修复有效,但希望这可以对将来的某人有所帮助。