$source-6ren">
gpt4 book ai didi

linux - 将 watch 转换为单位文件 systemd

转载 作者:太空狗 更新时间:2023-10-29 11:21:33 28 4
gpt4 key购买 nike

我有一个shell脚本如下

ss.sh

#!/bin/bash
opFile="custom.data"
sourceFile="TestOutput"
./fc app test > $sourceFile
grep -oP '[0-9.]+(?=%)|[0-9.]+(?=[A-Z]+ of)' "$sourceFile" | tr '\n' ',' > $opFile
sed -i 's/,$//' $opFile

要求是我需要将此脚本与 watch 命令一起使用。我想把它变成一个 systemctl 服务。我是这样做的。

sc.sh

#!/bin/bash
watch -n 60 /root/ss.sh

在我的/etc/systemd/system 中,

日志信息服务

[Unit]

Description="Test Desc"
After=network.target

[Service]
ExecStart=/root/sc.sh
Type=simple

[Install]
WantedBy=default.target

当我运行 systemctl start log_info.service 时,它​​会运行但不会按照我希望的方式连续运行。

在运行 sytemctl status log_info.service 时,

info_log.service - "Test Desc"
Loaded: loaded (/etc/systemd/system/info_log.service; disabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Mon 2016-09-12 08:17:02 UTC; 2min 18s ago
Process: 35555 ExecStart=/root/sc.sh (code=exited, status=1/FAILURE)
Main PID: 35555 (code=exited, status=1/FAILURE)

Sep 12 08:17:02 mo-b428aa6b4 systemd[1]: Started "Test Desc".
Sep 12 08:17:02 mo-b428aa6b4 sc.sh[35654]: Error opening terminal: unknown.
Sep 12 08:17:02 mo-b428aa6b4 systemd[1]: info_log.service: Main process exited, code=exited, status=1/FAILURE
Sep 12 08:17:02 mo-b428aa6b4 systemd[1]: info_log.service: Unit entered failed state.
Sep 12 08:17:02 mo-b428aa6b4 systemd[1]: info_log.service: Failed with result 'exit-code'.

关于为什么它运行不正常的任何想法?任何帮助将不胜感激!

最佳答案

所以我(从 super 用户那里)了解到这个失败的原因正是我的错误控制台中的内容,即

Error opening terminal: unknown

Watch 只能从终端执行,因为它需要访问终端,而服务没有该访问权限。

watch 的一种可能替代方法是使用不需要终端的命令,例如 screentmux。或者,另一个对我有用的替代方案是

# foo.timer
[Unit]
Description=Do whatever

[Timer]
OnActiveSec=60
OnUnitActiveSec=60

[Install]
WantedBy=timers.target

这背后的逻辑是,需要每 60 秒运行一次脚本,而不是使用 watch。因此,grawity 建议我使用一个计时器单元文件,该文件每 60 秒调用一次服务文件。如果服务单元与计时器单元的名称不同,则可以使用 [Timer] Unit=

希望这对您有所帮助,并向 super 用户的 grawity 和 Eric Renouf +1 以获得答案!

关于linux - 将 watch 转换为单位文件 systemd,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39446378/

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