gpt4 book ai didi

Ubuntu 16 - 即使启动条件失败,如何让 Systemd 继续尝试启动服务?

转载 作者:行者123 更新时间:2023-12-04 18:50:38 25 4
gpt4 key购买 nike

我有一个用于 kafka 的系统单元文件,如下所示。

[Unit]
Description=Apache Kafka server (broker)
Documentation=http://kafka.apache.org/documentation.html
After=network.target remote-fs.target kafka-zookeeper.service

[Service]
Type=simple
User=nano
Group=nano
Environment=JAVA_HOME=/usr/java/jdk1.8.0_102
ExecStart=/opt/kafka/bin/kafka-server-start.sh /opt/kafka/config/server.properties
ExecStop=/opt/kafka/bin/kafka-server-stop.sh

[Install]
WantedBy=multi-user.target
RestartSec=2s
Restart=always

Zookeeper 单元文件。
[Service]
Type=simple
User=nano
Group=nano
Environment=JAVA_HOME=/usr/java/jdk1.8.0_102
ExecStart=/opt/kafka/bin/zookeeper-server-start.sh /opt/kafka/config/zookeeper.properties
ExecStop=/opt/kafka/bin/zookeeper-server-stop.sh
RestartSec=2s
Restart=always

有时我观察到 kafka 处于停止状态并执行 systemctl status kafka.service向我显示以下消息
ubuntu@platform3:/usr/lib/systemd/system$ sudo systemctl status kafka.service
● kafka.service - Kafka Service
Loaded: loaded (/usr/lib/systemd/system/kafka.service; enabled; vendor preset: enabled)
Active: inactive (dead)
Condition: start condition failed at Mon 2019-03-25 17:56:30 UTC; 10h ago

在检查日志时,似乎 sudo systemctl start kafka.service在 zookeeper 没有运行时被执行。所以前提条件不满足,kafka没有启动。

但是过了一段时间,zookeeper 启动并运行了,但即便如此,Kafka 也没有启动。有人可以告诉我是否有办法让systemd继续尝试启动kafka,而不是像现在这样如果不满足先决条件就停止一次?

最佳答案

使用kafka-zookeeper.serviceRequire=而不是 After= .这样做,您的服务将首先查看 zookeeper 是否正在运行,如果它没有运行,它将尝试启动它。

基于文档:http://manpages.ubuntu.com/manpages/bionic/man5/systemd.unit.5.html

关于Ubuntu 16 - 即使启动条件失败,如何让 Systemd 继续尝试启动服务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55350153/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com