进一步阅读

进一步阅读

我已经从 Cloudera CDH5 存储库在 CentOS 7 中安装了 Hue。

启动后报错:

# systemctl status hue
hue.service - SYSV: Hue web server
   Loaded: loaded (/etc/rc.d/init.d/hue)
   Active: failed (Result: resources) since sob 2016-11-26 20:25:31 UTC; 6min ago
  Process: 3448 ExecStart=/etc/rc.d/init.d/hue start (code=exited, status=0/SUCCESS)

lis 26 20:25:20 node0 systemd[1]: Starting SYSV: Hue web server...
lis 26 20:25:20 node0 su[3457]: (to hue) root on none
lis 26 20:25:31 node0 hue[3448]: Starting hue: [  OK  ]
lis 26 20:25:31 node0 systemd[1]: PID file /usr/lib/hue/pids/supervisor.pid not readable (yet?) after start.
lis 26 20:25:31 node0 systemd[1]: Failed to start SYSV: Hue web server.
lis 26 20:25:31 node0 systemd[1]: Unit hue.service entered failed state.

这是假错误,Hue 实际上已经正确启动并在不同目录(/var/run/hue/supervisor.pid)下创建了 pid 文件。

# ps -ef | grep hue
hue       3877     1  0 20:25 ?        00:00:00 python2.7 /usr/lib/hue/build/env/bin/supervisor -p /var/run/hue/supervisor.pid -l /var/log/hue -d
hue       3949  3877  0 20:25 ?        00:00:03 python2.7 /usr/lib/hue/build/env/bin/hue runcherrypyserver

/etc/init.d/huepid 目录中通过 PIDFILE 变量正确设置...尽管我注意到 systemctl 作为注释报告的目录:

# pidfile: /usr/lib/hue/pids/supervisor.pid
[...]
PIDFILE=/var/run/hue/supervisor.pid

现在我查看了所有/etc,/usr/var,但找不到任何告诉 systemd 在该特定目录中查找 pidfile 的配置。有什么提示吗?

答案1

我 [...] 找不到任何告诉 systemd 在该特定目录中查找 pidfile 的配置。

你们都可以并且做到了。你甚至把它放在你的问题中:

systemctl我还注意到评论中报告的目录:

# pid文件:/usr/lib/hue/pids/supervisor.pid

就在那里。配置信息告诉systemd-sysv-generatorPID 文件在哪里。

在几种主要不同风格的rc脚本(Mewburn rc、OpenBSD rc、LFS、Fedora/RHEL/CentOS、SUSE、Debian/Ubuntu 和 OpenRC)中,这是 systemd 尝试导入的两个脚本之一。赠品是它在描述前面添加的“SYSV:”。当它导入其他样式时,它会在前面添加“LSB:”。

PIDFILEpid 目录已通过变量正确设置

“正确”是一种夸大其辞的说法。你的旧rc剧本是自相矛盾的。其标头中的配置信息与脚本的实际功能相矛盾。

一种方法是修复自相矛盾的rc脚本。更好的方法是编写一个服务单元。使用不正确的rc脚本会导致守护进程在两个嵌套服务管理器(systemd 下的主管)下运行。讽刺的是,这些 PID 文件垃圾根本就没有必要。

它看起来像:

[单元]
描述=Hue Web 服务器
文档=https://unix.stackexchange.com/a/326354/5132

[服务]
类型=简单
用户=色调
工作目录=/usr/lib/hue/
环境=PYTHON_EGG_CACHE=/tmp/.hue-python-eggs
ExecStart=/usr/bin/env build/env/bin/hue runcherrypyserver
系统日志标识符=色调

[安装]
WantedBy=多用户.target

进一步阅读

相关内容