gpt4 book ai didi

ubuntu - 崩溃后 Systemd 启动服务

转载 作者:行者123 更新时间:2023-12-03 17:17:53 26 4
gpt4 key购买 nike

我目前正在运行一项由于错误而不断崩溃的服务。
该错误是已知的,将在以后修复,但每次崩溃时我都无法重新启动服务。

通常,该服务将通过“service icinga2 restart”重新启动。
所以我创建了一个文件

/etc/systemd/system/multi-user.target.wants/icinga.service

内容如下:
[Unit]
Description=Icinga2 restart

[Service]
Type=simple
ExecStart=/etc/init.d/icinga2 restart
Restart=always
RestartSec=0

但它不起作用。我做错什么了?

最佳答案

单元文件应该有配置指令指定单元的行为,对于 Icinga2 服务确实需要一个后端,所以基于你作为后端的 mysqlpostgresql你应该在它们作为启动行为之后启动它,所以 [Unit]部分应该有
After=syslog.target network.target postgresql.service mariadb.service
服务专区下Type应该 fork 。
fork 是针对使用 ExecStart 启动的进程产生一个子进程,该子进程成为服务的主进程。启动完成后父进程退出。
ExecStart应该指向 /usr/sbin/icinga2 daemon -d你也应该给 PIDFile这个位置。

这是我的文件副本:

[Unit]
Description=Icinga host/service/network monitoring system
After=syslog.target network.target postgresql.service mariadb.service carbon-cache.service

[Service]
Type=forking
EnvironmentFile=/etc/sysconfig/icinga2
ExecStartPre=/usr/lib/icinga2/prepare-dirs /etc/sysconfig/icinga2
ExecStart=/usr/sbin/icinga2 daemon -d -e ${ICINGA2_ERROR_LOG}
PIDFile=/run/icinga2/icinga2.pid
ExecReload=/usr/lib/icinga2/safe-reload /etc/sysconfig/icinga2

[Install]
WantedBy=multi-user.target

EnvironmentFile好像:
DAEMON=/usr/sbin/icinga2
ICINGA2_CONFIG_FILE=/etc/icinga2/icinga2.conf
ICINGA2_RUN_DIR=/run
ICINGA2_STATE_DIR=/var
ICINGA2_PID_FILE=$ICINGA2_RUN_DIR/icinga2/icinga2.pid
ICINGA2_ERROR_LOG=/var/log/icinga2/error.log
ICINGA2_STARTUP_LOG=/var/log/icinga2/startup.log
ICINGA2_LOG=/var/log/icinga2/icinga2.log
ICINGA2_USER=icinga
ICINGA2_GROUP=icinga
ICINGA2_COMMAND_GROUP=icingacmd

关于ubuntu - 崩溃后 Systemd 启动服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35476696/

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