在 ubuntu 16 lts 服务器系统上,新安装的elasticsearch
实例无法启动systemctl restart elasticsearch
(或无法使用 start)。没有创建日志,/usr/share/elasticsearch/bin/elasticsearch
以用户 elasticsearch 身份手动运行有效,因此权限或配置文件不是问题(我认为),并且当我运行命令时 /var/log/elasticsearch 中没有日志systemctl
,因此我认为 systemctl 只是默默地失败而无法执行任何操作。
我不知道下一步该检查什么。是否有一些 /etc/init.d/##elasticsearch 脚本或某些东西有问题,需要替换?
systemctl 在 ubuntu 上做什么?它会查找并运行 /etc/rc4.d/S01elasticsearch 吗?还有其他吗?
systemctl status elasticsearch 说:
● elasticsearch.service - LSB: Starts elasticsearch
Loaded: loaded (/etc/init.d/elasticsearch; bad; vendor preset: enabled)
Active: active (exited) since Mon 2016-11-07 16:29:25 EST; 2min 26s ago
Docs: man:systemd-sysv-generator(8)
Process: 1151 ExecStart=/etc/init.d/elasticsearch start (code=exited, status=0
Nov 07 16:29:25 webci systemd[1]: Starting LSB: Starts elasticsearch...
Nov 07 16:29:25 webci elasticsearch[1151]: * Starting Elasticsearch Server
Nov 07 16:29:25 webci elasticsearch[1151]: ...done.
Nov 07 16:29:25 webci systemd[1]: Started LSB: Starts elasticsearch.
我认为上述情况意味着它启动后默默退出,没有提供任何有用的日志输出。journalctl 也没有提供其他日志记录。
如果我使用,journalctl -xe
我会得到一堆时钟噪音,但没有什么有趣的:
Nov 07 16:33:44 webci elasticsearch[2273]: * Starting Elasticsearch Server
Nov 07 16:33:44 webci elasticsearch[2273]: ...done.
Nov 07 16:33:44 webci systemd[1]: Started LSB: Starts elasticsearch.
-- Subject: Unit elasticsearch.service has finished start-up
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Unit elasticsearch.service has finished starting up.
--
-- The start-up result is done.
Nov 07 16:33:44 webci sudo[2233]: pam_unix(sudo:session): session closed for use
Nov 07 16:34:08 webci smbd[2343]: pam_unix(samba:session): session closed for us
Nov 07 16:35:01 webci CRON[2356]: pam_unix(cron:session): session opened for use
Nov 07 16:35:01 webci CRON[2357]: (root) CMD (command -v debian-sa1 > /dev/null
Nov 07 16:35:01 webci CRON[2356]: pam_unix(cron:session): session closed for use
lin
看上去成功了,但是elasticsearch进程并没有运行,并且已经退出了。
答案1
您可以使用
systemctl status <service>
获取有关服务状态的基本信息以及
journalctl -xe
将在分页程序中显示 systemd 日志的内容并跳转到日志的末尾。您可能需要向上滚动才能找到所需的信息。
答案2
在 Ubuntu 16.04 上运行 elasticsearch 的解决方案是编辑/etc/default/elasticsearch
、取消注释该行START_DAEMON=true
,然后运行systemctl restart elasticsearch
。