首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >systemctl & Oracle Linux 9& curl

systemctl & Oracle Linux 9& curl
EN

Unix & Linux用户
提问于 2023-05-09 14:57:56
回答 1查看 22关注 0票数 0

我有一个Oracle Linux 9(这是一个Red“克隆”),并且有一个systemctl服务,它应该在启动时执行curl。我得到了一个错误:

代码语言:javascript
复制
× gitlab-runner-curl.service - gitlab runner curl
     Loaded: loaded (/etc/systemd/system/gitlab-runner-curl.service; enabled; vendor preset: disabled)
     Active: failed (Result: exit-code) since Tue 2023-05-09 16:51:31 CEST; 27s ago
    Process: 998 ExecStart=/usr/bin/curl -v -k --fail -F token=glptt-35a1ab49139cf38005a38d547ae614cba7c28862 -F ref=acc-mi-1 https>
   Main PID: 998 (code=exited, status=6)
        CPU: 23ms

May 09 16:51:31 serverx systemd[1]: Starting gitlab runner curl...
May 09 16:51:31 serverx curl[998]:   % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
May 09 16:51:31 serverx curl[998]:                                  Dload  Upload   Total   Spent    Left  Speed
May 09 16:51:31 serverx curl[998]: [121B blob data]
May 09 16:51:31 serverx curl[998]: * Closing connection 0
May 09 16:51:31 serverx curl[998]: curl: (6) Could not resolve host: servery
May 09 16:51:31 serverx systemd[1]: gitlab-runner-curl.service: Main process exited, code=exited, status=6/NOTCONFIGURED
May 09 16:51:31 serverx systemd[1]: gitlab-runner-curl.service: Failed with result 'exit-code'.
May 09 16:51:31 serverx systemd[1]: Failed to start gitlab runner curl

因此很明显,它是在网络启动之前执行的(因为curl: (6) Could not resolve host: servery错误)。为什么会这样呢?这是我的服务文件:

代码语言:javascript
复制
[Unit]
Description=gitlab runner curl
After=gitlab-runner.service network.target

[Service]
Type=oneshot
User=gitlab-runner
ExecStart=/usr/bin/curl -v -k --fail -F token=xxxxxx -F ref=acc-mi-1 https://servery/api/v4/projects/128/trigger/pipeline
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target

如您所见,服务应该在network.start之后启动。curl语句从shell中完美地运行。

打招呼,

伊万

EN

回答 1

Unix & Linux用户

发布于 2023-05-09 15:15:36

我不相信使用After=network.target要等到网络在线后才使用。它将导致服务在network.target启动后的任何时候运行,但不一定是在网络联机并可供连接时运行。

根据关于各种network*.target单位,您可能希望在服务中使用network-online.target

代码语言:javascript
复制
[Unit]
Description=gitlab runner curl
After=gitlab-runner.service network-online.target
Wants=network-online.target
票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/745398

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档