尝试在 Centos 7.1 上启动 cntlmd 时出现奇怪的错误。
systemctl start cntlmd 在日志中产生以下结果(是的,becomming 正是它在日志中的拼写方式:)):
systemd: Started SYSV: Cntlm is meant to be given your proxy address and becomming.
奇怪的是:

  • 它在安装后最初运行。
  • 完全相同的配置在另一台机器上完美运行(使用 Chef 进行配置,因此 100% 相同的配置)。
  • 如果我在前台运行它,它可以工作,但通过 systemd,而不是。

  • 为了“修复”它,我必须手动删除并重新安装,然后它再次工作。

    有没有人看到这个错误(谷歌什么也没透露)并知道发生了什么?

    最佳答案

    我意识到,每次引导后/var/run/cntlm目录似乎都已“删除”。原来 /var/run/cntlm 目录永远不会由 systemd-tmpfiles 在启动时创建(感谢 this SO answer ),然后导致:

    Feb 29 06:13:04 node01 cntlm: Using following NTLM hashes: NTLMv2(1) NT(0) LM(0)
    Feb 29 06:13:04 node01 cntlm[10540]: Daemon ready
    Feb 29 06:13:04 node01 cntlm[10540]: Changing uid:gid to 996:995 - Success
    Feb 29 06:13:04 node01 cntlm[10540]: Error creating a new PID file
    

    因为 cntlm 无法写入它的 pid 文件,因为 /var/run/cntlm 不存在。

    因此,要让 systemd-tmpfiles 在启动时创建 /var/run/cntlm 目录,您需要在 /usr/lib/tmpfiles.d/cntlm.conf 中添加以下文件:
    d /run/cntlm   700 cntlm cntlm
    

    重新启动,鲍勃就是你的叔叔。

    10-07 23:52