gpt4 book ai didi

Centos7 SystemD - Systemctl 启动问题

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

我有我的 bash 脚本,我将我的服务设置为在其上运行 ExecStart - 现在我的 bash 脚本直接通过用户“staytus”运行,按预期启动和停止事情,但由于某种原因,当我通过它运行它时我还不明白systemctl 它抛出错误!

现在,由于它可以作为同一用户正常运行,因此我设置了要使用的服务,这有点告诉我问题出在启动文件上。

[Unit]
Description=Starts up procodile which runs staytus

[Service]
User=staytus
Type=simple
ExecStart=/usr/bin/startup/start.sh
Restart=on-abort

[Install]
WantedBy=multi-user.target

我已经尝试添加一个工作目录,更改用户等等,但都没有运气 - 关于尝试什么的任何其他建议?
Oct 12 15:36:52 system-name start.sh: /usr/local/bin/procodile: line 10: require: command not found
Oct 12 15:36:52 system-name start.sh: /usr/local/bin/procodile: line 12: version: command not found
Oct 12 15:36:52 system-name start.sh: /usr/local/bin/procodile: line 16: syntax error near unexpected token `('
Oct 12 15:36:52 system-name start.sh: /usr/local/bin/procodile: line 16: ` str = str.dup.force_encoding("BINARY") if str.respond_to? :force_encoding'
Oct 12 15:36:52 system-name systemd: status.service: main process exited, code=exited, status=2/INVALIDARGUMENT

最佳答案

在 Systemd 上,由 ExecStart 运行的进程的环境变量与用户终端上的环境变量不同。

https://www.freedesktop.org/software/systemd/man/systemd.exec.html#Environment%20variables%20in%20spawned%20processes

您必须检查运行正常的环境变量(可能在终端上使用 set 命令)并使用 Environment="VAR1=VALUE1" "VAR2=VALUE2" 在 systemd 服务定义中添加所需的变量。 .见 https://www.freedesktop.org/software/systemd/man/systemd.exec.html#Environment

关于Centos7 SystemD - Systemctl 启动问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52780245/

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