systemd - 为什么systemd不重启服务?
问题描述
请帮忙。我有这样的单位:
[Unit]
Description=Kafka_obed_exporter
Wants=network-online.target
After=network-online.target
After=kafka.service
Requires=kafka.service
[Service]
User=kafka_exporter
Group=kafka_exporter
Type=simple
ExecStart=/usr/local/bin/kafka_exporter --kafka.server=1.1.29.3:9092 --web.listen-address=1.1.29.2:9500
restart=always
RestartSec=10s
[Install]
WantedBy=multi-user.target
当我重新启动服务器时,这个单元只尝试启动一次,然后 - 失败并出现错误:
kafka_exporter.service: Main process exited, code=exited, status=2/INVALIDARGUMENT
kafka_exporter.service: Failed with result 'exit-code'.
我知道它失败的原因 - 当我手动重新启动单元时,其他 kafka 节点还没有启动 - 它开始正常。我的问题是为什么 systemd 没有t restart this unit ? as you can see im use options Restart=always, i think systemd will try restart this unit if it not started yet.
In systemd log i
:
Dec 28 09:05:29 audmain systemd[1]: Started Apache Zookeeper.
Dec 28 09:05:29 audmain systemd[1]: Started Apache Kafka.
Dec 28 09:05:29 audmain systemd[1]: Started Kafka_obed_exporter.
Dec 28 09:05:29 audmain systemd[1]: Starting Network Time Service...
.......
.......
Dec 28 09:05:36 audmain systemd[1]: kafka_exporter.service: Main process exited, code=exited, status=2/INVALIDARGUMENT
Dec 28 09:05:36 audmain systemd[1]: kafka_exporter.service: Failed with result 'exit-code'.
没有别的了。
解决方案
它不会重新启动,因为您写restart=always
的是Restart=always
. unix/linux 上的东西是区分大小写的。
另外,管理单元依赖是 systemd 的主要业务。您可以告诉它在另一个单元之后启动一个单元。请参阅digitalocean.com 教程或man systemd.unit
.
推荐阅读
- android - 在 Flutter 中以编程方式调用 onBackpress
- c++ - 使用矩阵实现伪代码:
- javascript - 如何将json编码结果从控制器传递到javascript变量
- c++ - Pybind:从 C++ 朋友类访问指向的值
- python - 继承一个随机类而不覆盖实例化
- django - 会话身份验证不适用于 django 和 vuejs
- java - ActiveMQ 命令行异常:“无法检索 RMIServer 存根”
- javascript - 如何在 Javascript 中处理此 API 响应?
- excel - 使用 Countifs、Sumif 从多个工作表中的同一单元格将数据拉入我的仪表板
- java - IntelliJ IDEA 无法启动:无法加载 JDK 类:com.sun.jdi.Field