systemd-timer

Systemd 计时器仅在服务停止时启动
systemd-timer

Systemd 计时器仅在服务停止时启动

我有一个运行 python 脚本的服务: [Unit] Description="Daily python service" [Service] WorkingDirectory=/home/ubuntu/python_project/ ExecStartPre=/bin/bash -c 'truncate -s 0 /var/log/project.log /var/log/project_error.log' ExecStart=/home/ubuntu/.conda/envs/test/bin/python -u main.py StandardOu...

Admin

有没有办法相对于另一个计时器安排一个惰性计时器?
systemd-timer

有没有办法相对于另一个计时器安排一个惰性计时器?

( x-mas.service) [Unit] Description=Celebrate X-Mas [Service] Type=simple ExecStart=/usr/sbin/x-mas-day [Install] WantedBy=multi-user.target ( x-mas.timer) [Unit] Description=Add "X-Mas" to the calendar [Timer] OnCalendar=*-12-25 00:00:00 Unit=x-mas.service [Install] WantedBy=...

Admin

管理 systemd 模板实例之间的排序依赖关系
systemd-timer

管理 systemd 模板实例之间的排序依赖关系

抽象的例子: 我有两个重复任务A,B我想将其设置为systemd服务。由于任务彼此非常相似,因此我使用模板[email protected]; A 和 B 将分别作为该模板的实例运行:[email protected]和[email protected]。 # [email protected] [Unit] Description= myservice %I [Service] Type=oneshot IOSchedulingClass=idle ExecStart=bash -c "echo Starting ...

Admin

Systemd - 在特定日期用户登录后运行 bash 脚本
systemd-timer

Systemd - 在特定日期用户登录后运行 bash 脚本

我使用 i3 窗口管理器,每天的远程工作我都想运行一个负责设置我的显示器的脚本。周二,我在现场工作,然后我想运行另一个脚本。我可能可以使用 bash 条件来解决我的问题,但我宁愿利用这个机会了解有关 systemd 的更多信息,而不仅仅是启动/停止/重新启动/启用/禁用 :D 这是我的脚本(从终端启动时工作正常) #!/bin/sh xrandr --output eDP-1 --off --output HDMI-1 --primary --mode 1920x1080 --pos 0x0 --rotate normal --output DP-1 --o...

Admin

带计时器的 Ubuntu systemd 服务速度很慢
systemd-timer

带计时器的 Ubuntu systemd 服务速度很慢

我已经设置了一个 systemd 计时器来在 Ubuntu 22.04 上每分钟触发一个服务,但我遇到了一个问题,即服务的执行时间在第一次运行后显着增加。该服务只是使用 /bin/echo 记录一些文本。详细信息如下: 服务文件(testA.service): [Unit] Description=Sample Service A [Service] ExecStart=/bin/echo "Hello from Service A" 定时器文件(testA.timer): [Unit] Description=1min timer [Timer] O...

Admin

Systemd 可执行文件无法从 CacheDirectory 读取文件且权限被拒绝
systemd-timer

Systemd 可执行文件无法从 CacheDirectory 读取文件且权限被拒绝

我有一个每 5 分钟运行一次的 Golang 二进制文件。它应该创建和更新需要写入限制的文本文件。为了运行这个二进制文件,我创建了一个 systemd 服务和一个 systemd 计时器单元。 Systemd 服务使用 DynamicUser。为了实现访问限制,我CacheDirectory在 systemd 中使用指令,以便只有 DynamicUser 可以写入该文件,并且它仅在用户存在时存在。还设置CacheDirectoryMode=644为仅允许具有写入权限的所有者。 当 systemd 服务运行时,它失败并显示 failed to read out...

Admin

systemd 计时器具有长寿命进程,避免重叠
systemd-timer

systemd 计时器具有长寿命进程,避免重叠

我有一个脚本可以扫描任务,并一次完成一个任务,然后退出。执行可以持续 1 秒(无任务)到 2 小时(繁重任务)。随后的运行应尽快开始,以检查剩余/传入的工作。 我希望 systemd 来管理这个。 [Time] OnUnitActiveSec=1 [email protected] 我希望每个服务每 1 秒启动一次(如果尚未运行的话)。应该Type=simple涵盖这个还是我需要Conflicts自己?Type=oneshot与怎么样RemainAfterExit=no?服务单位有太多的选择来满足这个要求......但它们似乎都是错误的。 奖金:...

Admin

如何使用 OnCalendar 指示计时器中的小时范围?
systemd-timer

如何使用 OnCalendar 指示计时器中的小时范围?

系统219版本 Ubuntu 22.04.2 LTS [Unit] Description=Run myscript.service every 5 minutes [Timer] OnCalendar= *-*-* 10-23:10/5:00 Persistent=true [Install] WantedBy=timers.target 我需要每小时过 10 分钟运行一次服务,直到 23:10。 (10:10、11:10、12:10 ..23:10)。我很难指出时间范围。 我努力了10-23, 10..23甚至粘贴了另一个人的相同日期邮政。还是没...

Admin

为什么systemctl status显示未来的时间和剩余时间?
systemd-timer

为什么systemctl status显示未来的时间和剩余时间?

当我们发出“ systemctl status”时,我们通常会在输出中得到一行显示状态以及处于该状态的时间。 就像:(我几分钟前发布的) Active: active (running) since Wed 2023-11-22 01:56:06 CST; 10h ago 但是,当系统时间为 01:19:27 CST 时,同一服务碰巧收到以下行 Active: active (running) since Wed 2023-11-22 **01:56:06** CST; 36min **left** 为什么“since”后面的时间是将来时?为什么它显示“...

Admin

systemd 计时器每 1 小时 X 分钟一次?
systemd-timer

systemd 计时器每 1 小时 X 分钟一次?

我正在寻找一个每 1 小时 18 分钟运行一次的 systemd 计时器,但我只有这个线索。 systemd-analyze --iterations=3 calendar *:0/18每 18 分钟一班。 ...

Admin

如何正确设置 systemd-time-wait-sync.service
systemd-timer

如何正确设置 systemd-time-wait-sync.service

onCalendar=*:30我必须在Raspberry Pi 上设置一个计时器没有网络连接但使用电池供电的 RTC。 为了同步我的 RTC,我遵循这个帖子。 上手册页systemd 计时器的部分如下OnCalendar=所示: 请注意,如果系统的实时时钟设置不正确,日历计时器可能会在意外时间被触发。具体来说,在缺乏电池缓冲实时时钟 (RTC) 的系统上,启用 systemd-time-wait-sync.service 可能是明智的做法,以确保在设置计时器事件之前将时钟调整为网络时间源。至少具有一个 OnCalendar= 表达式的计时器单元会自动排序在 ...

Admin

编辑1
systemd-timer

编辑1

我有一个实时计时器,Persistent=false在启动后立即运行,尽管我的目标是定期运行它! 我发现这是一个相当常见的问题,但我在 StackExchange 中找到的答案都没有解决我的问题。我听从了建议这个帖子和这个帖子。 在这里我报告一个简化的示例来重现我的问题。我希望计时器每 5 分钟执行一次(0,5,10,15,...55),但不在启动后执行。 我有以下两个文件,使用 sudo systemctl edit --force --full test.service和生成 sudo systemctl edit --force --full test...

Admin

单元模板和非模板目标单元
systemd-timer

单元模板和非模板目标单元

我喜欢将自定义单元文件保存在自己的目录中,远离 /etc。在 247 中,使用如下内容效果很好: systemctl enable /path/to/unit.service 这也适用于模板,甚至那些具有关联计时器的模板: systemctl enable /path/to/timed-unit@.* 之后您将实例化: systemctl enable [email protected] 然而,在 252 中,当尝试使用路径名启用文件时,我现在收到以下错误: Failed to enable unit: Destination unit timer...

Admin

如何在 systemd 服务中指定最长服务持续时间?
systemd-timer

如何在 systemd 服务中指定最长服务持续时间?

我遇到一个问题,在极少数情况下,我的Type=simplesystemd 服务会挂起或陷入循环。这会导致其计时器停止调度服务,因为正如通过 确认的那样sudo systemctl status myservice,服务在应该早已退出的情况下仍在运行。我还没有弄清楚这个错误,但这并不重要。但与此同时,我不希望它停止安排未来的运行。 有没有办法在 systemd 服务文件中指定最大运行时间,之后它将强制停止? [Unit] Description=scripts should run and exit but occasionally hangs or infi...

Admin