使用 systemd 启动后触发 CURL 请求

Trigger CURL Request after boot using systemd

我正在尝试创建一个每次 raspberry pi 启动时都会触发的服务。目前,服务 运行 是一个非常简单的脚本,它向我控制的 Web 服务端点发送 POST 请求。我可以手动触发所述脚本,并且该部分一切正常。

我正在努力进行下一步,即在 pi 完成启动后将该脚本发送到 运行。我还需要能够在没有用户登录的情况下将其设置为 运行。

CURL 脚本(阿尔及尔-startup.local)

#! /bin/bash

echo "Attempting CURL Request"
curl --data "param1=value1&param2=value2" http://10.68.159.28:3000/device

Systemd 服务

[Unit]
Description=Algiers RaspberryPi Startup
After=network.target
Before=getty@tty1.service

[Service]
Type=oneshot
ExecStart=/usr/local/sbin/algiers-startup.local
TimeoutSec=30
StandardOutput=tty
RemainAfterExit=no

[Install]
WantedBy=multi-user.target

我在控制台中没有看到任何错误或输出,也没有任何迹象表明发生了任何事情。

我假设您的机器已经设置 Systemd。它主要通过 systemctl 命令控制。我给它取了别名,因为一直打字很糟糕:

alias sc=systemctl
alias ssc='sudo systemctl'

您只需“启用”您的服务即可在启动时运行:

sc enable algiers-startup

我不确定你使用的是什么发行版,但在 Arch 和 CentOS 上,你会希望 algiers-startup 生活在 /usr/lib/systemd/system/

您可以使用 sc start algiers-start 测试您的服务。 journalctl 可以告诉你发生了什么。