当前位置: 首页 > 知识库问答 >
问题:

如何将systemd服务配置为定期重启?

陆琦
2023-03-14

我有一个简单的systemd服务,需要定期重新启动,以防止其进程被窃听。systemd服务是否有定期重启的配置选项?所有重启*选项似乎都与在服务退出时重启服务有关。

共有3个答案

皇甫高阳
2023-03-14

来个crontab怎么样。例子:

30 3 * * sun /bin/systemctl restart yourService

这将在每周日凌晨3:30重新启动名为yourService的服务。

如果你想在任何类Unix服务器上工作的东西(例如,你不想担心特定的systemd版本等),你可能会喜欢这个解决方案。

华谭三
2023-03-14

我在这里看到了一个看似优雅的解决方案,尽管有点迂回。关键思想是创建一个由计时器触发的一次性服务,该计时器重新启动另一个服务。

对于计时器:

[Unit]
Description=Do something daily

[Timer]
OnCalendar=daily
Persistent=true

[Install]
WantedBy=timers.target

对于一次性服务:

[Unit]
Description=Restart service

[Service]
Type=oneshot
ExecStart=/usr/bin/systemctl try-restart my_program.service

对于Ubuntu 16.04 LTS上的一次性服务:

[Unit]
Description=Restart service

[Service]
Type=oneshot
ExecStart=/bin/systemctl try-restart my_program.service

此解决方案允许您利用systemd的计时器,包括在一天中的特定时间重新启动服务的能力,而不仅仅是在经过一段时间后。

胥康安
2023-03-14

适用于systemd版本

e、 g.每7天重新启动一次:

[Service]
Restart=always
RuntimeMaxSec=7d

在我看来,这似乎比滥用Type=notifyWatchdogSec,更优雅。

systemd 提供了一种在供应商提供的 systemd 单元文件中添加和覆盖指令的干净方法。插入式单位在 man systemd.unit 中进行了描述。例如,如果要定期重新启动软件包提供的 foo 服务,则需要创建一个名为 /etc/systemd/system/foo.service.d/periodic-restart.conf 的文件。内容如上所示。然后:

 systemctl daemon-reload
 systemctl restart foo

您可以确认引入单元已加载,因为它将在状态输出中报告:

 systemctl status

最后,您可以通过搜索systemctl show输出来确认指令已包含:

 systemctl show foo.service | grep RuntimeMax

systemctl show报告的指令将是“RuntimeMaxUSec”`

 类似资料:
  • 问题内容: 我有一个简单的systemd服务,需要定期重新启动它,以防止其进程出错。是否有配置选项供systemd服务定期重新启动它们?所有选项似乎都与退出服务时重新启动服务有关。 问题答案: 是的,您可以通过将服务设置为来使服务定期重启。在此服务文件的[服务]部分中将此选项与和一起添加,其中xx是您要重新启动服务的时间(以秒为单位)。在这里,您的进程将在xx个时间段后被systemd终止,并再次

  • 问题内容: 我正在尝试将服务的输出重定向到文件,但它似乎不起作用: 请更正我的方法。 问题答案: 我认为有一种解决问题的更优雅的方法:将stdout / stderr发送给具有标识符的syslog,并指示syslog管理器按程序名称拆分其输出。 在您的systemd服务单元文件中使用以下属性: 然后,假设您的发行版正在使用rsyslog管理syslog,请在其中创建一个包含以下内容的文件: 现在,

  • 我试图将服务的输出重定向到一个文件,但似乎不起作用: 请纠正我的做法。

  • 我从微服务架构和spring Cloud开始。我正试图从Spring配置服务器获取Spring Zuul网关的配置。我在网关服务的bootstrap.properties文件中添加了以下属性: active=dev 尽管这些属性对所有其他服务都有效,但对网关却不起作用。我为网关使用的注释是: 其他服务的注释只有: ::Spring Boot::(V2.3.0.M4) 2020-04-17 21:5

  • 配置代理服务器能干嘛 NEI toolkit 提供了代理服务器的功能,帮助将接口代理到NEI官网或者特定的服务器上 将接口代理到NEI官网 开启该功能只需将server.config.js中的online设为true, 那么对Mock Server的所有请求都将会代理到NEI官网上,该模式也被称为在线模式。 启用在线模式可以减少执行nei update的操作,在频繁更改官网数据的情况下能够大幅加快

  • 我们的项目中使用的是Spring Cloud config server,它有多个微服务。配置服务器就绪后,我们现在将所有微服务的所有属性存储在一个中央git存储库中。每个微服务能够根据应用程序名称和配置文件提取自己的属性文件。我们试图将资源包存储在中央存储库中,并让config-server将这些资源包提供给微服务。我们的资源包包括属性文件,如messages_en.properties、mes